Multithread Exceptionhandler bei release build



  • Guten Tag zusammen,

    ich habe folgendes problem: die software die ich entwickle soll demnächst an die ersten Testkunden heraus gegeben werden. Dafür will ich unbedingt eine Möglichkeit einrichten um crash dumps zu produzieren. Ich weiß das es möglich ist mit ::SetUnhandledExceptionFilter (https://msdn.microsoft.com/de-de/library/windows/desktop/ms680634(v=vs.85).aspx) eine exception zu behandeln, bzw zu reagieren wenn was passiert das nicht sollte 😉

    Leider funktioniert der ganze Spass nicht mehr wenn ich im Release modus bau (auch RelWithDebInfo).. also konkret gesagt: ich habe mehrere threads und wenn ich es aus einem anderen thread als den main thread call, springt der nicht in den vorher gesetzten exception handler..

    Wie bekomme ich es hin das ich einen exception handler setze der auch mit multithreaded Programmen im release funktioniert?


  • Mod

    Dann machst Du was falsch:

    Auszug aus der Doku zu SetUnhandledExcpetionFilter:

    **

    Enables an application to supersede the top-level exception handler of each thread of a process.

    **

    also konkret gesagt: ich habe mehrere threads und wenn ich es aus einem anderen thread als den main thread call, springt der nicht in den vorher gesetzten exception handler..

    Dieser Satz ist unvollständig und ich verstehe nicht was Du meinst.

    PS: Evtl. solltest Du die Umschalttaste auch im Satz benutzen und nicht nur am Satzanfang... 🤡



  • Das funktioniert auch problemlos, nur leider endet da an dieser Stelle mein C-Programm. Ich möchte aber, dass das weiter läuft.
    Auch habe ich system("testdatei.sce &"); bereits versucht, welches woanders als Lösung dafür genannt ist. Erfolglos.



  • funktioniert das mit dem & unter windows überhaupt? also unter linux startet man damit einen hintergrundprozess.

    probiers sonst mal mit createprocess.


Log in to reply