This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello, following a discussion that started in: http://sources.redhat.com/ml/gdb-patches/2006-04/msg00345.html Here is a patch that fixes the problem. In summary: When we do next/step operations, we end up parsing the top frame function prologue and creating a frame_info with it. Unfortunately, at that point, the breakpoints are still inserted and that causes the prologue analyzer to misinterpret the function prologue and consequently breaks unwinding a bit. The fix that has been suggested is to fix the i386 prologue analyzer to handle inserted breakpoints. This is what the new read_insn() function does. I've always been very bad with names, so suggestions are more than welcome. I also think that read_insn() might be better located in a more general area, such as beside the various read_memory routines for instance. But before moving this function, I thought I'd ask... 2006-04-28 Joel Brobecker <brobecker@adacore.com> * i386-tdep.c (read_insn): New function. (i386_follow_jump): Use read_insn to read instructions. (i386_analyze_struct_return): Likewise. (i386_skip_probe): Likewise. (i386_match_insn): Likewise. (i386_analyze_frame_setup): Likewise. (i386_analyze_register_saves): Likewise. (i386_skip_prologue): Likewise. Tested on i686-pc-cygwin. No regression. Testcase to follow shortly. OK to apply? Thanks, -- Joel
Attachment:
bt.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |