Mail Archives: djgpp/1998/08/06/11:08:52
On Wed, 5 Aug 1998, Eli Zaretskii wrote:
> put a breakpoint inside `exit', and when the
> breakpoint is hit, see whether the linked list is already scrogged. By
> moving the call to `exit' you can get a pretty good idea who overwrites
> the list, and then debug that place as usual.
Thank you. Did that and it turns out that the potential offending
candidate is the loop at line no 296 in /src/debug/common/syms.c.
The statement:
l[i2].l_lnno += lbase
oversteps over the array bound, lbase is -1 and the pointer to the next
member of the malloc chain gets decremented, so that the address of the
next malloced array gets byteshifted giving an invalid address.
I am now studying the organisation of the linenumber information structure
in a coff file to see the logic, and fix it *if* it is wrong, but if some
one who understands this better than I, and has the time and inclination
could fix it, it might get fixed faster (if fixing is required that is).
With thanks and with warmest regards
Gurunandan
- Raw text -