2009-10-22 Paul Pluzhnikov <ppluzhnikov@google.com>

* 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  <ppluzhnikov@google.com>

	* gdb.texinfo (Machine Code): Mention function name in disasssembly
	and adjust example.

testsuite/ChangeLog:

2009-10-22  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* gdb.asm/asm-source.exp: Adjust.
This commit is contained in:
Paul Pluzhnikov 2009-10-23 00:49:33 +00:00
parent bb8a0291af
commit 9c4191458a
8 changed files with 41 additions and 21 deletions

View file

@ -1,3 +1,11 @@
2009-10-22 Paul Pluzhnikov <ppluzhnikov@google.com>
* 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 <msnyder@vmware.com> 2009-10-22 Michael Snyder <msnyder@vmware.com>
* infrun.c (keep_going): If insert_breakpoints fails, * infrun.c (keep_going): If insert_breakpoints fails,

View file

@ -936,8 +936,7 @@ print_disassembly (struct gdbarch *gdbarch, const char *name,
} }
/* Subroutine of disassemble_command to simplify it. /* Subroutine of disassemble_command to simplify it.
Print a disassembly of the current function. Print a disassembly of the current function according to FLAGS. */
MIXED is non-zero to print source with the assembler. */
static void static void
disassemble_current_function (int flags) disassemble_current_function (int flags)
@ -1018,6 +1017,7 @@ disassemble_command (char *arg, int from_tty)
if (! arg || ! *arg) if (! arg || ! *arg)
{ {
flags |= DISASSEMBLY_OMIT_FNAME;
disassemble_current_function (flags); disassemble_current_function (flags);
return; return;
} }
@ -1039,6 +1039,7 @@ disassemble_command (char *arg, int from_tty)
low = tui_get_low_disassembly_address (gdbarch, low, pc); low = tui_get_low_disassembly_address (gdbarch, low, pc);
#endif #endif
low += gdbarch_deprecated_function_start_offset (gdbarch); low += gdbarch_deprecated_function_start_offset (gdbarch);
flags |= DISASSEMBLY_OMIT_FNAME;
} }
else else
{ {

View file

@ -122,6 +122,7 @@ dump_insns (struct gdbarch *gdbarch, struct ui_out *uiout,
/* We don't care now about line, filename and /* We don't care now about line, filename and
unmapped. But we might in the future. */ unmapped. But we might in the future. */
ui_out_text (uiout, " <"); ui_out_text (uiout, " <");
if ((flags & DISASSEMBLY_OMIT_FNAME) == 0)
ui_out_field_string (uiout, "func-name", name); ui_out_field_string (uiout, "func-name", name);
ui_out_text (uiout, "+"); ui_out_text (uiout, "+");
ui_out_field_int (uiout, "offset", offset); ui_out_field_int (uiout, "offset", offset);
@ -373,9 +374,8 @@ gdb_disassemble_info (struct gdbarch *gdbarch, struct ui_file *file)
void void
gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout, gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
char *file_string, char *file_string, int flags, int how_many,
int flags, CORE_ADDR low, CORE_ADDR high)
int how_many, CORE_ADDR low, CORE_ADDR high)
{ {
struct ui_stream *stb = ui_out_stream_new (uiout); struct ui_stream *stb = ui_out_stream_new (uiout);
struct cleanup *cleanups = make_cleanup_ui_out_stream_delete (stb); struct cleanup *cleanups = make_cleanup_ui_out_stream_delete (stb);

View file

@ -21,14 +21,14 @@
#define DISASSEMBLY_SOURCE (0x1 << 0) #define DISASSEMBLY_SOURCE (0x1 << 0)
#define DISASSEMBLY_RAW_INSN (0x1 << 1) #define DISASSEMBLY_RAW_INSN (0x1 << 1)
#define DISASSEMBLY_OMIT_FNAME (0x1 << 2)
struct ui_out; struct ui_out;
struct ui_file; struct ui_file;
extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout, extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
char *file_string, char *file_string, int flags, int how_many,
int mixed_source_and_assembly, CORE_ADDR low, CORE_ADDR high);
int how_many, CORE_ADDR low, CORE_ADDR high);
/* Print the instruction at address MEMADDR in debugged memory, /* Print the instruction at address MEMADDR in debugged memory,
on STREAM. Returns the length of the instruction, in bytes, on STREAM. Returns the length of the instruction, in bytes,

View file

@ -1,3 +1,8 @@
2009-10-22 Paul Pluzhnikov <ppluzhnikov@google.com>
* gdb.texinfo (Machine Code): Mention function name in disasssembly
and adjust example.
2009-10-22 Michael Snyder <msnyder@vmware.com> 2009-10-22 Michael Snyder <msnyder@vmware.com>
* gdb.texinfo (Process Record and Replay): Document new form of * gdb.texinfo (Process Record and Replay): Document new form of

View file

@ -6540,7 +6540,9 @@ The default memory range is the function surrounding the
program counter of the selected frame. A single argument to this program counter of the selected frame. A single argument to this
command is a program counter value; @value{GDBN} dumps the function command is a program counter value; @value{GDBN} dumps the function
surrounding this value. Two arguments specify a range of addresses 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, If the range of memory being disassembled contains current program counter,
the instruction at that location is shown with a @code{=>} marker. 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 (@value{GDBP}) disas /m main
Dump of assembler code for function main: Dump of assembler code for function main:
5 @{ 5 @{
0x08048330 <main+0>: push %ebp 0x08048330 <+0>: push %ebp
0x08048331 <main+1>: mov %esp,%ebp 0x08048331 <+1>: mov %esp,%ebp
0x08048333 <main+3>: sub $0x8,%esp 0x08048333 <+3>: sub $0x8,%esp
0x08048336 <main+6>: and $0xfffffff0,%esp 0x08048336 <+6>: and $0xfffffff0,%esp
0x08048339 <main+9>: sub $0x10,%esp 0x08048339 <+9>: sub $0x10,%esp
6 printf ("Hello.\n"); 6 printf ("Hello.\n");
=> 0x0804833c <main+12>: movl $0x8048440,(%esp) => 0x0804833c <+12>: movl $0x8048440,(%esp)
0x08048343 <main+19>: call 0x8048284 <puts@@plt> 0x08048343 <+19>: call 0x8048284 <puts@@plt>
7 return 0; 7 return 0;
8 @} 8 @}
0x08048348 <main+24>: mov $0x0,%eax 0x08048348 <+24>: mov $0x0,%eax
0x0804834d <main+29>: leave 0x0804834d <+29>: leave
0x0804834e <main+30>: ret 0x0804834e <+30>: ret
End of assembler dump. End of assembler dump.
@end smallexample @end smallexample

View file

@ -1,3 +1,7 @@
2009-10-22 Paul Pluzhnikov <ppluzhnikov@google.com>
* gdb.asm/asm-source.exp: Adjust.
2009-10-22 Michael Snyder <msnyder@vmware.com> 2009-10-22 Michael Snyder <msnyder@vmware.com>
* gdb.reverse/break-precsave.exp: New test. * gdb.reverse/break-precsave.exp: New test.

View file

@ -461,7 +461,7 @@ test_dis "x/i &staticvar" "staticvar"
test_dis "disassem &staticvar &staticvar+1" "staticvar" test_dis "disassem &staticvar &staticvar+1" "staticvar"
# See if we can look at a static function # See if we can look at a static function
gdb_test "disassem foostatic" ".*<foostatic\\+0>:.*End of assembler dump." \ gdb_test "disassem foostatic" ".*<\\+0>:.*End of assembler dump." \
"look at static function" "look at static function"
remote_exec build "rm -f ${subdir}/arch.inc" remote_exec build "rm -f ${subdir}/arch.inc"