collecting data from a coring process

vijay nag
Fri Aug 26 12:01:00 GMT 2016

On Fri, Aug 26, 2016 at 2:36 PM, Paul Marquess
<> wrote:
> I have an existing Linux application that uses gdb to collect data from a process if it cores. Currently I've been doing that with gdb after the core is written to disk. No problem there.
> The requirements have now changed and it won't be possible to allow the core file to be written to disk. That means I need a way to (somehow) get gdb to collect the data while the process is still in memory.
> My first thought was to add a script in /proc/sys/kernel/core_pattern to catch the process as it is coring. Then I get gdb to attach to the PID of the process that is about to core. Unfortunately, when I tried that, gdb gives me this error
>     Unable to attach: program terminated with signal SIGSEGV, Segmentation fault.
>     No stack.
> That seems to imply that by the time /proc/sys/kernel/core_pattern kicks in it is too late to use the PID with gdb.
> Anyone know of a way to do this? Preferably one that doesn't involve changing the process itself.
> cheers
> Paul
You can do one of the following

1) Why not dump the information that you are looking for into a file
in the process signal handler ?
2) RTFM core file piping on linux (Probably you've done this already
?) - The idea may seem dangerous, but you can try inserting sleep in
the script for sometime till you gather whatever information that is

More information about the Gdb mailing list