我想弄清楚爲什麼我正在使用的程序掛起。獲取在GDB中運行的掛起進程的堆棧跟蹤
我最初以爲通過GDB運行它可以解決問題,但我得到的是和以前完全相同的症狀 - 有沒有什麼辦法可以發送信號或者什麼給GDB來打印堆棧跟蹤,所以我可以嘗試看看發生了什麼?
我正在使用FreeBSD-9.0。
我想弄清楚爲什麼我正在使用的程序掛起。獲取在GDB中運行的掛起進程的堆棧跟蹤
我最初以爲通過GDB運行它可以解決問題,但我得到的是和以前完全相同的症狀 - 有沒有什麼辦法可以發送信號或者什麼給GDB來打印堆棧跟蹤,所以我可以嘗試看看發生了什麼?
我正在使用FreeBSD-9.0。
我最終通過使用gcore(1)創建一個coredump來獲得回溯,然後用在GDB中創建的coredump啓動myprogram。
只需按下Control-C,就可以中斷GDB中正在運行的進程。
然後,您可以使用backtrace
命令進行回溯。
您可以使用'gdb program pid'將'gdb'附加到正在運行的進程。你試試嗎? – 2012-07-23 16:15:36
我已經附加了它 - 我使用命令「gdb myprogram」運行我的程序,並在「gdb內」運行時掛起。我正在尋找某種交互式gdb命令,只是吐出行號/堆棧/等。 – javanix 2012-07-23 16:16:38
或使用'gcore(1)'http://www.freebsd.org/cgi/man.cgi?query=gcore&sektion=1 – 2012-07-23 16:16:57