+2002-04-26 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_skip_prologue): Print note when debugging
+ code without frame pointers.
+
2002-04-26 Andrew Cagney <ac131313@redhat.com>
* sparc-tdep.c (sparc_gdbarch_init): Add comment explaining why
int x86_64_num_regs = X86_64_NUM_REGS;
int x86_64_num_gregs = X86_64_NUM_GREGS;
+/* Did we already print a note about frame pointer? */
+int omit_fp_note_printed = 0;
+
/* Number of bytes of storage in the actual machine representation for
register REGNO. */
int
read_memory (pc, (char *) prolog_buf, PROLOG_BUFSIZE);
- /* 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])
+ /* 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"
+ " Try to add -fno-omit-frame-pointer tou 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++)
+ if (prolog_expect[i] != prolog_buf[i])
+ return pc + 1; /* First instruction after pushq %rbp. */
v_function = find_pc_function (pc);
v_sal = find_pc_line (pc, 0);