www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - Linux Debug Info Still Not Right?

I'm attempting to do some debugging, but the stuff I'm seeing isn't making
any sense.  I'm using a tool called "Insight" and when I have it display
the code and assembly intermixed, I'm getting stuff like:
	2526		assert (root.childNodes.item(1) === secText);
-	0x8050959	<_D8unittest7testDOMFZv+197>:		or     %ch,0x1(%edx)
-	0x805095c	<_D8unittest7testDOMFZv+200>:		push   %ebx
-	0x805095d	<_D8unittest7testDOMFZv+201>:		call   0x8077470
-	0x8050962	<_D8unittest7testDOMFZv+206>:		add    $0x4,%esp
	2527		printf("11b\n\0");
	2528		if (secText.parentNode !== root) {
	0x8050965	<_D8unittest7testDOMFZv+209>:		call   0x8069e2c
-	0x805096a	<_D8unittest7testDOMFZv+214>:		push   %eax
-	0x805096b	<_D8unittest7testDOMFZv+215>:		mov    0xffffffe8(%ebp),%eax
-	0x805096e	<_D8unittest7testDOMFZv+218>:		mov    (%eax),%edx
-	0x8050970	<_D8unittest7testDOMFZv+220>:		call   *0x6c(%edx)
-	0x8050973	<_D8unittest7testDOMFZv+223>:		mov    %eax,0xfffffff4(%ebp)
	2529			printf(secText.parentNode.nodeName.toUtf8 ~ "\n\0");

None of this code has anything to with anything in either mango.cluster or
mango.icu until line 2529 which doesn't even use the constructor!  All of
these are used at some point in the code, but they're not even remotely
near the source that insight thinks they are.  The net result is that I'll
place a breakpoint in the source, and it'll stop at the wrong point in the
program, but make me think it's the right stop until I see the assembly
it's stopped it.... And the places at which it allows me to place break
points don't even make much sense (like blank lines).... it's not usable
in other words.

If Insight is having this problem, it's very likely that gdb does as well,
since Insight is just a front-end for gdb.

What's going on here?  This is a BIG problem for me, as it makes debugging
nearly impossible, which typically raises my frustration level quick
enough that I end up quitting early a lot.

Jan 10 2005