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