Mail Archives: djgpp-workers/1996/04/11/12:26:13
edebug32 and fsdb can't handle very long symbol names.
When debugging c++ programs using fsdb, I;ve been plaged with WIERD excetions while stepping
though my code (eg 'Exception 1700949349 (0x65626d65) occurred'). I had noticed that the
error codes tended to be parts of symbol names. Today, fsdb AND edebug32 were getting realy
strange exceptions (code ok, just couldn't figure out why) as shown below.
W-C:\SOURCE\S28>edebug32 s28-bin
>> n
_main():
00001bb0: 55 push ebp ebp=0004d2a8
00001bb1: 89e5 mov ebp,esp esp=0004d288
00001bb3: 81ec44010000 sub esp,0x144 esp=0004d288
00001bb9: 53 push ebx ebx=000501a0
00001bba: e83d180000 call ___main
Cannot continue from exception, exiting due to signal 0123
General Protection Fault at eip=00004b63
eax=00000084 ebx=00000076 ecx=00055918 edx=67616e61 esi=00000004 edi=00000004
ebp=00055948 esp=0005593c cs=00a7 ds=00af es=00af fs=0087 gs=00d7 ss=00af
Call frame traceback EIPs:
0x00004b63
0x00004dd1
0x00005d29
0x000067e9
0x00006cca
0x0000266b
0x000039d3
0x00009c9b
00001bbf: 68e41a0000
After a lot of fiddling, I wound up completely stripping my coff file (no symbols at all)
and tried running the debuggers. They worked perfectly. Symbol names like the following are
causing the problems:
_insertBefore__t12list_manager1Zt12list_manager1Z5SLinePCt12list_manager1Z5SLineRCQ2t12list_manager1Zt12list_manager1Z5SLine8iterator
which translates to
list_manager<list_manager<SLine> >::insertBefore(list_manager<SLine> const *,
list_manager<list_manager<SLine> >::iterator const &)
I'm willing to fix this bug, I just thought I should let you know about it
Bill
___________________________________________
Bill Currie (bill_currie AT tait DOT co DOT nz)
Tait Electronics, Christchurch, New Zealand
tel: (64) 3 358-3399, fax: (64) 3 358-0423
- Raw text -