Before doing what I had previously suggested (below), you could first check to see if it might help by typing "disas eth_open" in gdb. If the first line reads "push %rbp", then you have frame pointers.

If you don't have framepointers, THEN add -fno-omit-frame-pointer to your gcc command, rebuild SIMH, and then try running under gdb again.

In contrast with their more recent practices, Ubuntu seems to have made a change for the better, according to some tests I just made. When gcc 4.6 changed the default frame pointer option to be to omit them, Ubuntu chose not to pick up that change. But some other distros may not have made that choice, so it might be good to always add "-fno-omit-frame-pointer" whenever using "-g" on intel boxes.

- Michael

P.S. There are two other reasons I can immediately think of for why the stack might look so messed up. One is that something has clobbered it (maybe the compiler hasn't generated code that is safe for your threads?). The other is that in the event of a SIGSEGV, your kernel might be leaving virgin evidence of the trap frame and not bothering to set up the signal trampoline code and trap frame so as to be trackable by a debugger. (If so, it's a fixable problem, but not a user fixable one, and the fix might have binary backward compatibility issues, unless the person fixing it really lucks out).

On 02/26/2012 11:26 PM, Michael Bloom wrote:
Uggh. It looks like you are on a system that doesn't set up usable (for the purposes of debugging) stack frames.

I didn't see a "-fomit-frame-pointer" in your compilation, but if you are using a recent gcc (>=4.6, or maybe just set up that way on CentOS for the hell of it), then that's the default on your system.

Add -fno-omit-frame-pointer to your gcc command, rebuild SIMH, and then try running under gdb again.

The presence of frame pointers should help gdb find what's in each stack frame.

Also, while you are in gdb, try listing the lines around 1454. Unless I missed the release announcement, 3.8.2 is a pre-release, so the lines you have may not be the same as the ones others have, so people can't go by just line numbers to see where you are.

- Michael


_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to