On Sunday 29 September 2002 08:53 am, Eric Pouech wrote:
however, it's strange that your gdb like debuggers crash in -gstabs2 mode
no crashes, just some weirdness. using -gstabs2, I get relative paths all over the place, including lots of "../../xxx.c" paths, laid out in an inconsistent manner. Sometimes it's just looking for "xxx.c", etc. It becomes very hard to satiate all of these. I've seen posts from other people (can't seem to find any examples now) who seem to have the same problem (i.e., "I run ddd and it says 'cant find main.c'"). When I use -gstabs3, the problem vanishes, and both native debuggers and winedbg seem much happier. Probably a gcc3.2-specific problem.
BTW, I did manage to crash things in gdb proxy mode. Running Delphi 5 (my unrealistic fantasy is to get integrated debugging working in Delphi), I hit (in programs/winedbg/gdbproxy.c):
1853 i = write(gdbctx->sock, gdbctx->out_buf, gdbctx->out_len);
1854 assert(i == gdbctx->out_len);
1855 /* if this fails, we'll have to use POLLOUT... 1856 */
I'm looking into fixing this myself, but don't hold your breath.
I'll submit another patch to handle 'k' and 'B' symbols as you describe. I'm glad to see your way works, I considered that, but I thought it was too good to be true :) Now that I look at what I was doing, the union doesn't get copied over so it's probably even more incorrect than I thought.
Also: I've printed out the 100+ page Dwarf II spec. It's probably /way/ beyond my abilities to implement Dwarf II for winedbg but I figure it'd be an interesting learning experience to try, and I noticed that this is on the TODO list. Again, don't hold your breath, chances of even limited success at this point in my learning curve are VERY slim!
Another, more realistic, side-project I'm considering is to implement tab-completion and up-down arrow command-history in winedbg. It looks like to achieve this I'd need to split the code for reading lines into interactive and noninteractive modes... got any smart advice on this? Is there any good reason /not/ to do it?