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]

Re: How to catch GDB crash


Sorry,

the code that needs to be added at line 43 of gdb/main.c should read:

#if defined (POOR_MAN_DEBUG)
 #include <sys/time.h>
 double diff;
 time_t t0;
#endif

Before adding this to line 43, you should make the addition at line 661, otherwise its line 667.

Best regards

Rolf Jansen


Am 24.06.2008 um 03:50 schrieb Dr. Rolf Jansen:


Hi,

Here comes a poor mans approach.

1. add in the file gdb/main.c at line 661 the
  following code:

#if defined (POOR_MAN_DEBUG)
 printf_filtered ("[GDB PID %d]\n", getpid());
 t0 = time(NULL);
 while ((diff = difftime(time(NULL), t0)) <= 60);
#endif

and at line 43

#if defined (POOR_MAN_DEBUG)
 #include <sys/time.h>
 double diff;
 time_t t0 = time(NULL);
#endif


2. issue before the configure command: export CFLAGS="-g -O0 -DPOOR_MAN_DEBUG" export CXXFLAGS=$CFLAGS

3. configure and make your cross-686-pc-cygwin/arm-elf-gdb

4. start the cross-debugging session

5. now you have 60 seconds to attach your host-gdb
  to the just printed PID of your cross-gdb, and to
  set a reasonable breakpoint somewhere near to the
  location where you expect the crash to happen.

6. after 60 s the cross-gdb will continue running and
  your host-gdb shall stop the cross-gdb at the
  breakpoint that you set.

7. Now step through until the crash occurs.


Hopefully this helps.


Best regards

Rolf Jansen


Am 23.06.2008 um 23:31 schrieb Dmitry Smirnov:


Hi,

I've encountered the very annoying problem with GDB. While debugging, it crashes for some reason and I cannot catch this moment. I have a possibility to attach to the running process with another GDB, but it does not help. Perhaps, there is some way to catch some system exception or something similar?

I'm using a litle bit complex setup, so there is no much freedom (at least I cannot simplify the situation). First, I'm debugging from Eclipse (and it looks this crash happens only while running from Eclipse, I've tried from commad line - there is no crash). The debugger I'm using is cross-compiled arm-elf-gdb. It is compiled on windows (i686) platform:
GNU gdb (GDB) 6.8.50.20080620
...
This GDB was configured as "--host=i686-pc-cygwin --target=arm-elf".


I doubt this can be linked to GDB version. I recall I've seen this crash earlier with arm-elf-gdb 6.5 from GNUARM. I was just skipped this crash somehow but now I cannot continue my job.

This arm-elf-gdb is running against skyeye simulator as a remote target.

As you can see there are many possibilities for mailfunctioning software (Eclipse, GDB, skyeye). But the only way I can find the root cause is to debug the crash in arm-elf-gdb. While crashing it attempts to create the crashdump file, but it is incomplete and Cygwin gdb cannot recognize it. Typically it contains just three lines:

Stack trace:
Frame     Function  Args
0022E268  7C802532  (00000058

If attached, Cygwin GDB just reporting me:
Program exited with code 037777777777.

Is there any way to stop arm-elf-gdb on some critical error?

Dmitry






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