Programm stürzt mit 0xC000000D und keine Ausnahmen - wie kann ich das Debuggen?

Ich habe ein Visual C++ 9 Win32-Anwendung verwendet eine third-party Bibliothek. Wenn eine Funktion aus dieser Bibliothek aufgerufen wird, mit einem bestimmten Satz von Parametern das Programm stürzt mit "Ausnahmecode 0xC000000D".

Ich versuchte, fügen Sie Visual Studio-debugger - keine Ausnahmen geworfen werden (weder C++ noch strukturiert wie Zugriffsverletzungen) und terminate() ist nicht genannt. Trotzdem das Programm einfach endet still.

Wie geschieht es, dass das Programm abnormal beendet wird, aber ohne zu stoppen, im debugger? Wie kann ich die lokalisieren das problem?

ist es multithreaded oder Singlethreaded?
Ein worker-thread, mehrere service-threads erzeugt, die von RPC. Wir testeten die Synchronisierung gründlich, multithreading ist unwahrscheinlich, dass das problem.
Sind Sie eine release version oder debug version ist? Ich habe gesehen, seltsame Fälle von release-Versionen nicht zu stoppen, im debugger.
Osherov: Beide Versionen die gleiche Weise Verhalten in dieser situation.
Viele gute Gedanken - alle diese gefangen werden, von WinDbg und du wirst genau wissen, was passiert ist. Ein weiterer Weg, um fangen alle diese Fehler wird durch die Verwendung von AppVerifier - keine Notwendigkeit zu zahlen für BoundsChecker.

InformationsquelleAutor sharptooth | 2010-11-22

Schreibe einen Kommentar