[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [palito-dev] last intro test core dumping
From: |
Tom Barnes-Lawrence |
Subject: |
Re: [palito-dev] last intro test core dumping |
Date: |
Thu, 3 Jul 2003 07:15:10 +0100 |
User-agent: |
Mutt/1.3.28i |
On Thu, Jul 03, 2003 at 05:01:06AM +0100, I wrote:
<snip>
>
> It soon became obvious that actually it was getting upset from finding
> an out-of-range instruction type. I should have realised that before.
> So I'd suppose either the iteration in cpu_exec_code is continuing past
> the bounds of the array into other data or whatever (because of the
> ITR_RET instruction being missing), OR, when the array of instructions
> is being filled in, some out-of-range value is being written.
Or, the option I forgot to mention, of it being overwritten later by
a buffer overflow or similar-
much wrangling with GDB eventually produced:
(gdb) watch ((Itr *)0x8072488)->type
Hardware watchpoint 8: ((struct structItr *) 134685832)->type
(gdb) continue
Continuing.
Hardware watchpoint 8: ((struct structItr *) 134685832)->type
Old value = ITR_ROTATE
New value = 134748680
font_load (filename=0x805a78a "font.flush") at font.c:193
193 i++;
(gdb)
And yes, I did change flush.h as described in my previous mail to
have gdb display the enumerated type properly. It made it a bit
more comfortable to use.
At this point I've not found out any more of the situation, I only
just got that result. For all I know, the overwriting could have been
due to the *original* contents being written in a buffer overflow, with
the second access being within the buffer it was supposed to have
access to (if you know what I mean). I don't even know if *that* can
happen *shrug*.
Hope this is finally something useful,
Tomble