If you could
look at the stack frames and give me a stack trace
that's more or less the same thing.
(gdb) bt
The real question is not to get a stack trace, but to analyse it.
Hmm, we seem to have a different view. I like people who can write
the gdb bt code, not run it. This isn't an imaginary thing, one of
my guys showed up one day with his own hand rolled backtrace that we
ended up putting in our product for support.
The advantage of his, over the following hack we had before, was that
it worked when no gdb was installed (windows):
void
gdb_backtrace(void)
{
FILE *f;
char *cmd;
unless (getenv("_BK_BACKTRACE")) return;
unless ((f = efopen("BK_TTYPRINTF")) ||
(f = fopen(DEV_TTY, "w"))) {
f = stderr;
}
cmd = aprintf("gdb -batch -ex backtrace '%s/bk' %u 1>&%d
2>&%d",
bin, getpid(), fileno(f), fileno(f));
system(cmd);
free(cmd);
if (f != stderr) fclose(f);
}
--
---
Larry McVoy lm at
bitmover.com http://www.bitkeeper.com