program does not crash when attached to gdbserver

Jonas Maebe jonas.maebe@elis.ugent.be
Sat Jun 13 08:50:00 GMT 2009


On 13 Jun 2009, at 00:55, Dr. Rolf Jansen wrote:

> The problem is that the application crashes consistently after a  
> certain sequence of user interactions if it runs by its own.  
> However, the same binary does not crash, once it is attached to  
> gdbserver, and it does not crash even when continuing  with a couple  
> of stress tests beyound the point at which it would have crashed  
> without gdbserver.
>
> It would help so much to find the bug if the program would crash  
> into gdb and if gdb could show me the related source code. This  
> usually works quite well, for example when writing to memory at NULL.
>
> Perhaps somebody has an idea about what type of bug might cause the  
> behaviour described above.

As you surmise below: probably using uninitialised and/or freed memory.

> There was a debugger for Mac OS Classic called MacsBug, that had a  
> setting for scrambling the memory, so that accessing released memory  
> would immediately result into a crash. I cannot seem to find a  
> similar feature in gdb. Does gdb have any settings, that I can try?

In general, this is a feature of the compiler and/or run time, rather  
than of the debugger (the debugger cannot know how the memory manager  
of your run time works, so unless you exclusively use OS or OS- 
supplied library functions, it cannot scramble anything). E.g., in  
case of the Free Pascal Compiler, there are the -gttt (scramble all  
local variables on function entry) and -gh (use the heaptrc unit,  
which, a.o., scrambles all freed memory) options.

For GCC, you can have a look which of these work on your target  
platform: http://en.wikipedia.org/wiki/Memory_debugger

Regarding scrambling local variables on function entry, I believe that  
recent GCC's support doing that as well, but I don't know the command  
line option by heart.


Jonas



More information about the Gdb mailing list