diff options
Diffstat (limited to 'gdb/x86-64-tdep.c')
-rw-r--r-- | gdb/x86-64-tdep.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c index 94f57a5..a3f8bee 100644 --- a/gdb/x86-64-tdep.c +++ b/gdb/x86-64-tdep.c @@ -859,23 +859,14 @@ x86_64_skip_prologue (CORE_ADDR pc) read_memory (pc, (char *) prolog_buf, PROLOG_BUFSIZE); - /* First check, whether pc points to pushq %rbp. If not, - * print a recommendation to enable frame pointer. */ - if (prolog_expect[0] != prolog_buf[0]) - { - if (!omit_fp_note_printed) - { - printf_filtered - ("NOTE: This function doesn't seem to have a valid prologue.\n" - " Consider adding -fno-omit-frame-pointer to your gcc's CFLAGS.\n"); - omit_fp_note_printed++; - } - return pc; - } - /* Valid prolog continues with movq %rsp,%rbp. */ - for (i = 1; i < PROLOG_BUFSIZE; i++) + /* First check, whether pc points to pushq %rbp, movq %rsp,%rbp. */ + for (i = 0; i < PROLOG_BUFSIZE; i++) if (prolog_expect[i] != prolog_buf[i]) - return pc + 1; /* First instruction after pushq %rbp. */ + return pc; /* ... no, it doesn't. Nothing to skip. */ + + /* OK, we have found the prologue and want PC of the first + non-prologue instruction. */ + pc += PROLOG_BUFSIZE; v_function = find_pc_function (pc); v_sal = find_pc_line (pc, 0); |