2011-06-16 127 views

回答

6

通常與當應用程序已完成執行下面的命令:

(gdb) thread apply all bt 

當然,如果你想知道你必須編譯與調試符號您的應用程序中的特定行,即-g

+3

這在GDB 7.7.1上沒有打印任何內容。 – 2015-07-31 16:18:16

9

你可以嘗試使用GDB命令break exit在退出(2)庫調用中設置斷點。如果這沒有得到你所需要的,也許break _exit。你可能需要在得到後者的斷點之前用'sta'開始你的程序。無論哪種情況,您都應該能夠使用where命令獲取堆棧跟蹤,以顯示程序決定退出時的位置。

+0

通常有效,但可能會失敗:http://stackoverflow.com/questions/1780765/setting-a-gdb-exit-breakpoint-not-working – 2015-07-31 16:15:59

3

在_exit上設置一個斷點,然後檢查堆棧。