Ich führe ein Projekt, das Interprozess COM mit C++ verwendet. Auf der obersten Ebene der aufgerufenen Funktionen gibt es try/catch-Anweisungen direkt vor der Rückkehr durch COM. Der Catch konvertiert alle C++ - Ausnahmen in benutzerdefinierte Fehlercodes, die über die COM-Schicht an den Aufrufer zurückgegeben werden.Kann ich COM davon abhalten, nicht abgefangene C++ - Ausnahmen im aufgerufenen Prozess zu verschlucken?
Zum Debuggen möchte ich dieses try/catch deaktivieren und die Ausnahme einfach einen Absturz im aufgerufenen Prozess verursachen lassen (wie es normalerweise bei einer nicht abgefangenen C++ - Ausnahme passieren würde). Leider scheint mir die COM-Grenze diese nicht abgefangenen C++ - Ausnahmen zu verschlucken und ich bekomme keinen Absturz.
Gibt es eine Möglichkeit, dieses Verhalten in COM zu ändern? Dh, ich möchte, dass die nicht abgefangene C++ - Ausnahme einen Absturz im aufgerufenen Prozess verursacht.
Ich möchte, dass dies geschieht, damit ich einen Debugger anhängen kann und den Kontext sehen, in dem die Ausnahme ausgelöst wird. Wenn ich unseren Versuch/Fang einfach an Ort und Stelle belasse und den Haltepunkt auf den Haken bringe, dann ist der Stapel bereits abgewickelt und das ist für mich zu spät.
Die ursprünglichen "COM-Master", die diese Anwendung geschrieben haben, sind entweder nicht verfügbar oder können sich nicht genug Details merken.
Die Beschreibungen sieht seltsam aus. Ist es ein in Proc-COM-Server? Meine Erfahrung ist, dass mit einem In-Process-Server alle Ausnahmen glücklich über die COM-Grenze weitergegeben werden und den aufrufenden Prozess zum Absturz bringen. – sharptooth
"Ich führe ein Projekt, das ** inter-process ** COM mit C++ verwendet." – pauldoo