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:
parent
bb8a0291af
commit
9c4191458a
8 changed files with 41 additions and 21 deletions
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -122,7 +122,8 @@ 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, " <");
|
||||||
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_text (uiout, "+");
|
||||||
ui_out_field_int (uiout, "offset", offset);
|
ui_out_field_int (uiout, "offset", offset);
|
||||||
ui_out_text (uiout, ">:\t");
|
ui_out_text (uiout, ">:\t");
|
||||||
|
@ -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);
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue