mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-27 17:40:49 +00:00
gdb/:
* disasm.c (gdb_print_insn): Return the number of branch delay slot instructions too. * disasm.h (gdb_print_insn): Update prototype. * printcmd.c (branch_delay_insns): New variable to record the number of delay slot instructions after disassembling a branch. (print_formatted): Record the number of branch delay slot instructions. (do_examine): When disassembling, if the last instruction disassembled has any branch delay slots, then bump the count so that they get disassembled too. * tui/tui-disasm.c (tui_disassemble): Update the call to gdb_print_insn(). * NEWS: Document the new behaviour. gdb/doc/: * gdb.texinfo (Examining Memory): Document the new behaviour. gdb/gdbtk/: * generic/gdbtk-cmds.c (gdbtk_load_asm): Update the call to gdb_print_insn().
This commit is contained in:
21
gdb/disasm.c
21
gdb/disasm.c
@@ -387,11 +387,24 @@ gdb_disassembly (struct ui_out *uiout,
|
||||
}
|
||||
|
||||
/* Print the instruction at address MEMADDR in debugged memory,
|
||||
on STREAM. Returns length of the instruction, in bytes. */
|
||||
on STREAM. Returns the length of the instruction, in bytes,
|
||||
and, if requested, the number of branch delay slot instructions. */
|
||||
|
||||
int
|
||||
gdb_print_insn (CORE_ADDR memaddr, struct ui_file *stream)
|
||||
gdb_print_insn (CORE_ADDR memaddr, struct ui_file *stream,
|
||||
int *branch_delay_insns)
|
||||
{
|
||||
struct disassemble_info di = gdb_disassemble_info (current_gdbarch, stream);
|
||||
return gdbarch_print_insn (current_gdbarch, memaddr, &di);
|
||||
struct disassemble_info di;
|
||||
int length;
|
||||
|
||||
di = gdb_disassemble_info (current_gdbarch, stream);
|
||||
length = gdbarch_print_insn (current_gdbarch, memaddr, &di);
|
||||
if (branch_delay_insns)
|
||||
{
|
||||
if (di.insn_info_valid)
|
||||
*branch_delay_insns = di.branch_delay_insns;
|
||||
else
|
||||
*branch_delay_insns = 0;
|
||||
}
|
||||
return length;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user