pstack使用入門

來源:互聯網
上載者:User

標籤:

  1、pstack/gstack:print a stack trace of a running process

  1)用法:gstack pid。

  2)簡介:gstack命令attach到指定pid的進程,並列印其執行堆疊追蹤(execution stack trace)。若是多線程進程,還可以分別列印出各線程的堆疊追蹤。如以下片斷:

Thread 28 (Thread 0x7f771e50c700 (LWP 24360)):#0  0x00000038cfa0b63c in [email protected]@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1  0x00000000004b3c08 in boost::asio::detail::task_io_service::run(boost::system::error_code&) ()#2  0x0000000000534da3 in io_service_pool::runService(std::shared_ptr<boost::asio::io_service>) ()... ...

  gstack列印的只是某一瞬間進程/線程的堆疊追蹤,但可以通過頻繁採樣(如每秒執行一次)獲得足夠的統計資訊,並儲存到檔案中,再作分析。

  3)原理:

[[email protected] ~]# which gstack/usr/bin/gstack[[email protected] ~]# file /usr/bin/gstack/usr/bin/gstack: POSIX shell script, ASCII text executable

  gstack實際上是shell指令碼,它應用了gdb的thread apply all bt子命令。thread apply表示將一個命令(bt)應用到指定的一些線程(all)。

  4)應用:比如,同一程式的兩個不同版本在運行時對CPU的使用有明顯的不同,則可分別收集它們的統計資訊,再作比較(如從#0入手),從中找出兩者函數調用情況的不同之處等。

 

 

不斷學習中。。。

pstack使用入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.