2
我與線程和我的線程(S)的一個(或多個)的工作是/是卡住,永遠不會結束。問題是我找不到哪一個。如何找到哪個線程被卡
所以我想知道是否有一種方法可以找到它的ID
,與Linux命令PS
中顯示的ID相同。如果沒有辦法,我怎麼能找到哪個線卡?
觀測數據:已經檢查了pthread_self()
,它是不是我要找的。
我與線程和我的線程(S)的一個(或多個)的工作是/是卡住,永遠不會結束。問題是我找不到哪一個。如何找到哪個線程被卡
所以我想知道是否有一種方法可以找到它的ID
,與Linux命令PS
中顯示的ID相同。如果沒有辦法,我怎麼能找到哪個線卡?
觀測數據:已經檢查了pthread_self()
,它是不是我要找的。
使用GDB調試器,我們可以找出哪些線程處於阻塞狀態。
gdb your_file_executable
info threads
「信息線」將給出有關這催生/運行的線程的信息。 w^
另一個我覺得有用的命令是'thread apply all bt' - 它打印每個線程的堆棧跟蹤,讓您可以輕鬆地找到卡住的一個。 –
'ps'也不是沒有特殊的開關上市線程。你確定你想要線程而不是進程嗎? –
請參閱以下信息:http://stackoverflow.com/help/mcve – Elyasin
@EugeneSh。我想是這樣的......當我用字符'&'編譯時,能夠給出'PS'命令,並且我可以看到我的可執行文件在那裏列出了一個pid。我只是想知道是否有辦法找到哪個線程被卡住了...... – PlayHardGoPro