Hi, guys
The great thing about this list is that you can expect an answer to any
reasonable technical question here. You are the best, guys.
Now the question ;-). Does anybody know how to generate a core file from
within a process without terminating it on Linux or Solaris? I know that
at any point I can call abort() and have the core, or send itself a
signal that terminates a process with generating a core file. But it is
not what I need, unfortunately.
I hold little hope for a positive answer as I am in Unix C/C++
development for around 15 years, however maybe I am missing something.
Here's the problem. In my C++ program I have an exception class, say,
NoSuchElementException. It is being handled accordingly throughout the
code, however there are some places where it sneaks through. I want to
get an execution stack at the time when the exception is first created
so that I can trace where it was thrown from (much like in Ruby where
you can get #backtrace from an exception, Ruby rules :-) !!!) .
So I thought if I could generate a core file from
NoSuchElementException's constructor and let it go on, I would be able
to analyze the last core file and pin-point the place immediately (now I
have to put more trace output to find it).
Thanks a lot,
Gennady.
P.S. I also tried to use gdb and specify command to be executed at a
given breakpoint (like { backtrace, continue }). It works fine, however,
executing a program from within gdb is not always an option in a
production environment :-(, you often need to do post-mortem analysis.