1. 程式人生 > >linux抓取執行時程序棧資訊

linux抓取執行時程序棧資訊

Linux上開發時,一般程序執行結果和預期不符會通過打log記錄日誌分析執行過程,但有時log日誌不全,再者一些大型系統長期執行不會過多的記錄日誌,一般可以設定core檔案配置,以便程序在異常掛掉後自動記錄棧資訊,但大部分情況下程序是在執行過程中出現問題,這時就需要抓取執行時棧資訊,結合日誌進行分析了。

1. 主動kill程序生成core檔案分析(前提是已經配置好生成core的配置:ulimit)

查詢到執行程序pid,然後使用kill -11 <pid>向程序傳送退出訊號(段異常),生成core檔案後使用gdb調取棧資訊分析。

下面是linux訊號值,一般傳送預設動作為core的訊號都可以生成core檔案,其他則不生成。

2. 直接通過gstack命令抓取,不需要停掉目標程序。

引數:gstack <pid>