On Fri, 27 Dec 2002, brian moore wrote:

> On Fri, Dec 27, 2002 at 02:14:33AM +0200, Selcuk Goren wrote:
> > Hello list,
> > There is a serious bug which cause my mud crash and I cannot hunt it down. I
> > am really deperate about this. The only message I get when I debug the core
> > file is:
> >
> > Program terminated with signal 11, Segmentation fault.
> > Cannot access memory at address 0x40013730
> > #0  0x2073746e in ?? ()
> > (gdb) bt
> > #0  0x2073746e in ?? ()
> > Cannot access memory at address 0x69616c70
>
> You know, if you pretended that 32-bit address was a series of 4
> characters, you'd have 'play'.

Brian, last time I checked my ASCII chart, 0x69 was i, not y.  :)

Selcuk, if it helps any... when you add in the 0x2073746e, you
end up with a string of "plaints ".

> Suppose you have the following code:
>
>   void foo()
>   {
>      char bar[3];    /* okay, I'm lazy and don't want to type a long string */
>
>      strcpy(bar, "go play my game");
>      return;
>   }

In order to reproduce this error exactly, a string such as " complaints "
would work (don't forget that bar actually takes up 4 bytes on
the stack when word aligned on an x86, so in this example the p would have
to be the 5th byte in the string)

The output from gdb using the above example, but with the
string " complaints ":

#0  0x2073746e in ?? ()
(gdb) bt
#0  0x2073746e in ?? ()
Cannot access memory at address 0x69616c70


Just being picky.
Dennis



Reply via email to