2014-07-23 42 views
0

我正在gdb中運行C++多線程linux應用程序。我收到錯誤消息「Spurious thread death event」。我找不到爲什麼這個消息來了。 在非gdb運行中,我看不到運行或崩潰的問題。所以我不知道這是與應用程序有關的'真正'問題還是與gdb中的調試有關的問題。有關此消息的任何信息都將有所幫助。gdb中的「虛假線程死亡事件」消息

回答

0

嗯,我認爲這很有趣。看起來,gdb會在創建和銷燬線程時跟蹤線程。在這種情況下,gdb注意到一個線程被銷燬而不知道正在創建相同的線程。這裏有一篇很好的文章:http://timetobleed.com/how-do-debuggers-keep-track-of-the-threads-in-your-program/ 據我所知,這是「這種不應該發生」的錯誤,意思是說這可能是gdb/libthread_db中的一個錯誤......你能否提供一個最小的例子,觸發器行爲?

+0

感謝您的信息。 – user3867376

+0

感謝您的信息。觀察到的問題是隨機的。在我的應用程序中,創建和銷燬線程的流程中有許多要點。在不同的運行中,這個消息來自gdb的不同點。由於隨機性,很難舉一個例子。即使我沒有給出任何斷點並且直到最後「運行」,這個消息也會出現。 – user3867376