hooking up gdb (was Re: [Zope-dev] More signal 11 restarts....)

Matthew T. Kromer matt@zope.com
Wed, 05 Dec 2001 15:41:10 -0500


Leonardo Rochael Almeida wrote:

>Well, one of the things I was going to ask next was for some help doing
>postmortem.
>
>We aren't getting any core files, even after setting ulimit correctly
>(although we could be setting it uncorrectly. I'll look into that
>further). Anyway, someone else in this list said that core dumps for
>threaded apps in Linux were mostly useless, so we aren't investing much
>energy in it anyway.
>
>With the short restart times we have, I'd prever a solution that didn't
>involve keeping a dead site dead for too long (as in, debugging with
>gdb). We are working in a ZEO scheme that would switch over the
>accelerator to proxy another zeo client, but we are not there yet.
>
>It would be ideal if we could instruct python to grab the SIG11, invoke
>gdb, get a C stacktrace for all threads and let Zope die in peace. If it
>all happend in a few seconds, we will still keep the client happy.
>
>So, to answer your question, yes, I am confortable hooking up gdb. I'd
>just prefer if it could be done in as little time as possible.
>
>	Cheers, Leo
>


Well largely, ALL I want is the backtrace -- and I'm wondering if I 
could cobble something together that could get it.  The problem is it 
needs to look at the symbol table, and I dont know how to get at that 
via C -- ie, gdb doesnt have an interface that I know of that you can 
link in to grab a stack trace and exit.

Its been a while since I prowled the gdb source.  I may not be able to 
do anything automatic like you want -- but I sure wish that tool was 
available!