2009-07-06 Michael Matz <matz@suse.de>
* i386-tdep.c (i386_frame_cache): Assume anonymous functions use
a frame pointer.
---
gdb/i386-tdep.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: gdb-7.0.1/gdb/i386-tdep.c
===================================================================
--- gdb-7.0.1.orig/gdb/i386-tdep.c 2010-01-30 16:23:17.000000000 -0500
+++ gdb-7.0.1/gdb/i386-tdep.c 2010-01-30 16:24:38.000000000 -0500
@@ -1394,12 +1394,14 @@ i386_frame_cache (struct frame_info *thi
/* This will be added back below. */
cache->saved_regs[I386_EIP_REGNUM] -= cache->base;
}
- else
+ else if (cache->pc)
{
get_frame_register (this_frame, I386_ESP_REGNUM, buf);
cache->base = extract_unsigned_integer (buf, 4, byte_order)
+ cache->sp_offset;
}
+ else
+ cache->saved_regs[I386_EBP_REGNUM] = 0;
}
/* Now that we have the base address for the stack frame we can