2013-07-30 118 views
2

我試圖在gdb中轉儲乘客進程的回溯。我知道我應該只執行如何在gdb中爲乘客進程獲取rb_backtrace()的輸出

attach <PID> 
call rb_backtrace() 

開始GDB後,但我想不通的地方輸出的去向,我已經看了軌生產日誌(設置爲信息),nginx的日誌在/ var /日誌/ nginx,但我找不到輸出。有任何想法嗎?

回答

0

我不知道紅寶石結束了答案 - 我猜它會紅寶石進程的標準輸出或標準錯誤 - 但GDB最近得到了旨在幫助這個方案中的新功能。

這個新功能被稱爲「幀過濾器」,它允許您通過編寫檢查低級進程狀態的簡單Python腳本來更改堆棧跟蹤的呈現方式。例如,您可以編寫一個理解Ruby解釋器的腳本,然後讓gdb的「bt」自動將解釋(Ruby)幀與C幀交織在一起。

欲瞭解更多信息,從這裏開始閱讀接下來的幾個節點:http://sourceware.org/gdb/current/onlinedocs/gdb/Frame-Filter-API.html#Frame-Filter-API

我想看到這個功能,通過各種解釋項目被採納。漂亮的印刷技術被廣泛採用,我認爲這是合乎邏輯的下一步。

相關問題