From 9c4191458a49d50ebda256b624eac5fc646f31a8 Mon Sep 17 00:00:00 2001 From: Paul Pluzhnikov Date: Fri, 23 Oct 2009 00:49:33 +0000 Subject: [PATCH] 2009-10-22 Paul Pluzhnikov * disasm.h (DISASSEMBLY_OMIT_FNAME) New define. (gdb_disassembly): Correct parameter name. * disasm.c (dump_insns): Adjust. (gdb_disassembly): Fix indentation. * cli/cli-cmds.c (disassemble_command): Adjust. doc/ChangeLog: 2009-10-22 Paul Pluzhnikov * gdb.texinfo (Machine Code): Mention function name in disasssembly and adjust example. testsuite/ChangeLog: 2009-10-22 Paul Pluzhnikov * gdb.asm/asm-source.exp: Adjust. --- gdb/ChangeLog | 8 ++++++++ gdb/cli/cli-cmds.c | 5 +++-- gdb/disasm.c | 8 ++++---- gdb/disasm.h | 6 +++--- gdb/doc/ChangeLog | 5 +++++ gdb/doc/gdb.texinfo | 24 +++++++++++++----------- gdb/testsuite/ChangeLog | 4 ++++ gdb/testsuite/gdb.asm/asm-source.exp | 2 +- 8 files changed, 41 insertions(+), 21 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 153bc57b74..dfc57fbdec 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2009-10-22 Paul Pluzhnikov + + * disasm.h (DISASSEMBLY_OMIT_FNAME) New define. + (gdb_disassembly): Correct parameter name. + * disasm.c (dump_insns): Adjust. + (gdb_disassembly): Fix indentation. + * cli/cli-cmds.c (disassemble_command): Adjust. + 2009-10-22 Michael Snyder * infrun.c (keep_going): If insert_breakpoints fails, diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index ce7c2a6306..acdbc820b6 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -936,8 +936,7 @@ print_disassembly (struct gdbarch *gdbarch, const char *name, } /* Subroutine of disassemble_command to simplify it. - Print a disassembly of the current function. - MIXED is non-zero to print source with the assembler. */ + Print a disassembly of the current function according to FLAGS. */ static void disassemble_current_function (int flags) @@ -1018,6 +1017,7 @@ disassemble_command (char *arg, int from_tty) if (! arg || ! *arg) { + flags |= DISASSEMBLY_OMIT_FNAME; disassemble_current_function (flags); return; } @@ -1039,6 +1039,7 @@ disassemble_command (char *arg, int from_tty) low = tui_get_low_disassembly_address (gdbarch, low, pc); #endif low += gdbarch_deprecated_function_start_offset (gdbarch); + flags |= DISASSEMBLY_OMIT_FNAME; } else { diff --git a/gdb/disasm.c b/gdb/disasm.c index e296e38f98..592736727f 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -122,7 +122,8 @@ dump_insns (struct gdbarch *gdbarch, struct ui_out *uiout, /* We don't care now about line, filename and unmapped. But we might in the future. */ ui_out_text (uiout, " <"); - ui_out_field_string (uiout, "func-name", name); + if ((flags & DISASSEMBLY_OMIT_FNAME) == 0) + ui_out_field_string (uiout, "func-name", name); ui_out_text (uiout, "+"); ui_out_field_int (uiout, "offset", offset); ui_out_text (uiout, ">:\t"); @@ -373,9 +374,8 @@ gdb_disassemble_info (struct gdbarch *gdbarch, struct ui_file *file) void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout, - char *file_string, - int flags, - int how_many, CORE_ADDR low, CORE_ADDR high) + char *file_string, int flags, int how_many, + CORE_ADDR low, CORE_ADDR high) { struct ui_stream *stb = ui_out_stream_new (uiout); struct cleanup *cleanups = make_cleanup_ui_out_stream_delete (stb); diff --git a/gdb/disasm.h b/gdb/disasm.h index a6f6d396d2..c92e5afa06 100644 --- a/gdb/disasm.h +++ b/gdb/disasm.h @@ -21,14 +21,14 @@ #define DISASSEMBLY_SOURCE (0x1 << 0) #define DISASSEMBLY_RAW_INSN (0x1 << 1) +#define DISASSEMBLY_OMIT_FNAME (0x1 << 2) struct ui_out; struct ui_file; extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout, - char *file_string, - int mixed_source_and_assembly, - int how_many, CORE_ADDR low, CORE_ADDR high); + char *file_string, int flags, int how_many, + CORE_ADDR low, CORE_ADDR high); /* Print the instruction at address MEMADDR in debugged memory, on STREAM. Returns the length of the instruction, in bytes, diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 7f70e8d1c2..d65e6856af 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2009-10-22 Paul Pluzhnikov + + * gdb.texinfo (Machine Code): Mention function name in disasssembly + and adjust example. + 2009-10-22 Michael Snyder * gdb.texinfo (Process Record and Replay): Document new form of diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 18bad647ce..c1e393f5dd 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -6540,7 +6540,9 @@ The default memory range is the function surrounding the program counter of the selected frame. A single argument to this command is a program counter value; @value{GDBN} dumps the function surrounding this value. Two arguments specify a range of addresses -(first inclusive, second exclusive) to dump. +(first inclusive, second exclusive) to dump. In that case, the name of +the function is also printed (since there could be several functions in +the given range). If the range of memory being disassembled contains current program counter, the instruction at that location is shown with a @code{=>} marker. @@ -6570,21 +6572,21 @@ program is stopped just after function prologue: (@value{GDBP}) disas /m main Dump of assembler code for function main: 5 @{ - 0x08048330 : push %ebp - 0x08048331 : mov %esp,%ebp - 0x08048333 : sub $0x8,%esp - 0x08048336 : and $0xfffffff0,%esp - 0x08048339 : sub $0x10,%esp + 0x08048330 <+0>: push %ebp + 0x08048331 <+1>: mov %esp,%ebp + 0x08048333 <+3>: sub $0x8,%esp + 0x08048336 <+6>: and $0xfffffff0,%esp + 0x08048339 <+9>: sub $0x10,%esp 6 printf ("Hello.\n"); -=> 0x0804833c : movl $0x8048440,(%esp) - 0x08048343 : call 0x8048284 +=> 0x0804833c <+12>: movl $0x8048440,(%esp) + 0x08048343 <+19>: call 0x8048284 7 return 0; 8 @} - 0x08048348 : mov $0x0,%eax - 0x0804834d : leave - 0x0804834e : ret + 0x08048348 <+24>: mov $0x0,%eax + 0x0804834d <+29>: leave + 0x0804834e <+30>: ret End of assembler dump. @end smallexample diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6f4099fdc1..2cdccccef4 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-10-22 Paul Pluzhnikov + + * gdb.asm/asm-source.exp: Adjust. + 2009-10-22 Michael Snyder * gdb.reverse/break-precsave.exp: New test. diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp index b2bb679a75..40feba7f21 100644 --- a/gdb/testsuite/gdb.asm/asm-source.exp +++ b/gdb/testsuite/gdb.asm/asm-source.exp @@ -461,7 +461,7 @@ test_dis "x/i &staticvar" "staticvar" test_dis "disassem &staticvar &staticvar+1" "staticvar" # See if we can look at a static function -gdb_test "disassem foostatic" ".*:.*End of assembler dump." \ +gdb_test "disassem foostatic" ".*<\\+0>:.*End of assembler dump." \ "look at static function" remote_exec build "rm -f ${subdir}/arch.inc"