Timeline for How to catch every exception in a multi-threaded C++ app with the minumum of code?
Current License: CC BY-SA 4.0
11 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Apr 29, 2024 at 14:06 | comment | added | rwong | I think you can provide a better view of the system if you do this trick: capture a bunch of stack traces, each one from a different worker thread. See where the stack traces diverge from VxWorks (the framework) into your proprietary code. The proprietary code is where you have control over, and I suspect there's a single entry point that's used by all message handler threads (typically known as the thread entry point). With this information you can ask for permission to add the exception handler there. | |
| Apr 29, 2024 at 11:47 | history | edited | Mawg | CC BY-SA 4.0 | added 221 characters in body |
| Apr 27, 2024 at 10:29 | vote | accept | Mawg | ||
| Apr 26, 2024 at 19:02 | comment | added | Useless | If there's "zero exception handling" it actually means any exception will call terminate, right? But that is a form of handling. If that doesn't already solve your problem, you must need some specific properties from your exception handling which are not currently described in your question, and should be edited in. | |
| Apr 24, 2024 at 18:26 | comment | added | Greg Burghardt | Can you edit your question to include more information about the architecture of our application? Are your threads wrapped in their own objects? Are they just pointers to a function? | |
| Apr 24, 2024 at 14:51 | review | Close votes | |||
| Apr 30, 2024 at 3:06 | |||||
| Apr 24, 2024 at 12:36 | comment | added | Ccm | It seems like your threads are wrapped within objects of some sort, exposing a make method. If so, take a look at the futures / promise API, these catch the exceptions and contain them within the local state of the thread, and later exposes them as properties in the futures/promise object. This allows the callers to be aware of the failure without crashing the application. You can implement something similar, or rearrange your code based on futures / promises. | |
| Apr 24, 2024 at 11:16 | answer | added | Phill W. | timeline score: 8 | |
| Apr 24, 2024 at 11:02 | comment | added | pjc50 | But the most fundamental question: once you've caught the exception, what are you going to do with it? | |
| Apr 24, 2024 at 11:02 | comment | added | pjc50 | It depends what you want to achieve, but if you just want control over what happens on the way down: learn.microsoft.com/en-us/cpp/cpp/… | |
| Apr 24, 2024 at 10:44 | history | asked | Mawg | CC BY-SA 4.0 |