This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

investigate a multi-threaded core


Hi,
I am investigating a multi-threaded core, from info threads, I can see
two threads (thread 1 and thread 6) were doing something when the
process cored, while other thread
is sleeping or waiting for a signal.  I have two questions:

1. how to know which thread caused the crash?
when bring up the core by "gdb prog core", and do bt, the stack trace
is for thread 1, but from looking at the code, can not find any clue;
however, thread 6 is a little bit more suspcious.
but since gdb by default brings up thread 1, I am not sure whether I
should focus on thread 6 or thread 1.

2. this is a stripped library, how to find the args passed to the
function call? I am using info frame, but the address give me
anything, since this is a C++ object, and I expect to see the first
arguments should have some vtable (the class has virtual functions).
e.g,
 called by frame at 0xffffcb84
 Arglist at 0xffffcb38, args:
 Locals at 0xffffcb38, Previous frame's sp is 0xffffcb40
 Saved registers:
  ebx at 0xffffcb04, ebp at 0xffffcb38, esi at 0xffffcb0c, edi at
0xffffcb08, eip at 0xffffcb3c

(gdb) x 0xffffcb38
0xffffcb38:     0xffffcb7c
(gdb) x 0xffffcb7c
0xffffcb7c:     0xffffcb98
(gdb)

Thanks for your help.

-Haoran


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]