On Tuesday, 4 September 2018 at 03:39:04 UTC, Nick Sabalausky (Abscissa) wrote:
Discussion questions:
- What would be the feasibility of the various parts of this?

You'd need to interrupt the process. You'd need a parent process that detects the interrupt. Then you'd need to use the debugger API to attach to the child process and get the relevant data.

Annoying to write, but it should work, assuming the child process didn't install a signal handler to handle SIGABRT.

You could simply call SIGABRT and create a core dump, but that can be costly on a system where your application might use multiple gigabytes of RAM.

- What would be the downsides, and how serious would they be?

It's extra complexity. It means you must run in a multiprocessing environment (which is almost, but not quite, a trivial requirement). If you're running as a user without debugger privileges, you're horked; you aren't getting an error message at all.

The benefit is that you can safely do more elaborate logging when more of your runtime and base frameworks are in an invalid state. I think most people are happy to live dangerously or to go with simpler logging.

Reply via email to