0
我有一個多線程的客戶端服務器應用程序。服務器端正在失敗,std :: list被損壞導致SEGV。我懷疑有兩種線程在同一時間更新std :: list並導致它被破壞時會出現某種交叉線程計時問題。什麼免費工具或策略可以幫助調試多線程腐敗錯誤?
請建議免費工具來跟蹤此信息或可能有用的策略。
我有一個多線程的客戶端服務器應用程序。服務器端正在失敗,std :: list被損壞導致SEGV。我懷疑有兩種線程在同一時間更新std :: list並導致它被破壞時會出現某種交叉線程計時問題。什麼免費工具或策略可以幫助調試多線程腐敗錯誤?
請建議免費工具來跟蹤此信息或可能有用的策略。
如果您知道由於併發訪問而損壞的共享數據結構,請在數據結構上放置一個互斥體,以便一次只能有一個線程訪問,然後重試。
您需要確保沒有共享數據可以被併發線程更新。多線程讀取是可以的,你需要小心多線程讀取和一個或多個寫入。
你能指定你正在使用的操作系統和哪個編譯器嗎?
我有一個互斥鎖,這就是我爲什麼會發生腐敗的困惑。有些東西的行爲並不像我想的那樣,因此我希望通過一種工具的幫助來追蹤它。 我使用g ++ v3.4.6和Centos 4。 – WilliamKF 2010-04-30 02:32:48