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 * 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