2009-11-05 238 views
0

這可能是一個真正的問題,但我在這裏問,因爲當我在面試中被問到這個問題時,我沒有任何線索。使用gdb/dbx調試線程進程

我們如何調試由另一個線程創建的線程? 假設有一個主進程,它調用函數pthread_create來創建一個不可連接的線程進程,這意味着主進程和新創建的線程進程都將執行自己的任務,如果我們開始調試程序我們可以導航到創建的線程嗎?

在此先感謝。

回答

3

您可以將gdb附加到整個過程,然後使用gdb的thread ops在線程之間導航。當pthread_create你要調試的線程時,它可能有助於打印線程ID。

+0

+1。我可能會很懶,只是在設置進程運行之前在線程的入口點設置一個斷點。我想這種方法只有在你已經對線程中問題出現的位置有所瞭解時纔有用。 – 2009-11-05 04:52:34