2016-11-17 21 views
0

我正在處理一個多線程應用程序,它一般工作正常。如何處理C++異常3765269347

現在看來子線程的崩潰,並以拋出C++異常配置Visual Studio中,我發現有關異常的以下信息:

ExceptionCode : 3765269347 
ExceptionFlags : 1 
ExceptionRecord : <NULL> 
ExceptionAddress : 0x0000...0 
NumberOfParameters : 4 
params: 
    magicNumber : 429065504 
    pExceptionObject : 0x... (some memory address) 
    pThrowInfo : 0x... (some memory address) {<application.exe>[email protected]@ ... 
    attributes : 0 
    pmfnUnwind : 470560 
    pForwardCompat : 0 
    pCatchableTypeArray : 6451800 
    pThrowImageBase : 0x... (some memory address) {<application.exe>_IMAGE_DOS_HEADER_ImageBase} 

(我試圖複製爲儘可能好,不要拍我的情況下,錯別字)

我一直在尋找在互聯網上提到的異常代碼,但我不明白的解釋,我已經搜索提到的「AVC_IoException」但我沒有找到任何東西。有人知道我能在這裏做什麼嗎?

有關您的信息,當我嘗試將某些內容寫入緩衝區時(對於您的信息,此緩衝區不是NULL),會引發異常,但似乎與加載任何DLL文件無關在每個loadlibrary()函數中都放置了斷點,但沒有一個被調用)。

特此一段代碼(這是一個遞歸函數,寫東西到緩衝區):提前

virtual void fillBuffersBeforeWrite(const <internal_struct>* pDsp, size_t nByteCount) 
    { 
    <internal_class>* w = writer(); 
    if (w && (w != this)) { 
     w->fillBuffersBeforeWrite(pDsp, nByteCount); 
    } 
    } 

感謝

+1

關於這個相同的異常的相關問題:http://stackoverflow.com/search?q=3765269347 –

+0

你在調試器中嘗試*運行*實際上捕獲異常/崩潰的行動?你的代碼在哪裏發生?你在那做什麼?這可能是你錯過了處理的比賽條件嗎?有成千上萬的可能性,我們無法全部列出。你必須通過縮小名單來幫助我們。 –

+0

由於拋出異常,DLL中的'dllmain()'函數可能的解釋。 http://stackoverflow.com/questions/17069336/c-loadlibrary-error-3765269347如果是這樣,你需要看看你的程序加載的dll,以及導致它們失敗的原因。 – Peter

回答

1

試圖抓住拋出異常的代碼:在微軟的Visual Studio 2015,調試 - > Windows - >異常設置,選擇「C++ Exceptions」,右鍵單擊「Add Exception」,插入異常類型 - 「AVC_IoException」;也標記其他常見的異常類型 - std :: exception,CException等 調試器將停止排隊並拋出異常。你可以比分析堆棧。請注意,您可能需要跳過(即要求調試器繼續)無關的異常。 保持所有3D方的調試版本(包括C++/C運行時和操作系統)也是一個好主意。

+0

感謝您的回答,我會在問題再次出現時嘗試使用它:同時其中一位支持工程師已經找到了解決此問題的方法,大大降低了優先級。 – Dominique