mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
[gdb] Fix maint selftest -v print_one_insn
When running the print_one_insn selftests with -v, I get: ... $ gdb -q -batch -ex "maint selftest -v print_one_insn" Running selftest print_one_insn::A6. .shor 0x783eRunning selftest print_one_insn::A7. trap_s 0x1Running selftest print_one_insn::ARC600. .shor 0x783eRunning selftest print_one_insn::ARC601. Running selftest print_one_insn::ARC700. trap_s 0x1Running selftest print_one_insn::ARCv2. trap_s 0x1Running selftest print_one_insn::EM. trap_s 0x1Running selftest print_one_insn::HS. trap_s 0x1Running selftest print_one_insn::Loongarch32. ... The insn is written to gdb_stdout, and there is code in the selftest to add a newline after the insn, which writes to stream(). The stream() ui_file points into a string buffer, which the disassembler uses before writing to gdb_stdout, so writing into it after the disassembler has finished has no effect. Fix this by using gdb_stdlog and debug_printf (which is what the unit test infrastructure itself uses) instead, such that we have: ... Running selftest print_one_insn::A6. .shor 0x783e Running selftest print_one_insn::A7. trap_s 0x1 Running selftest print_one_insn::ARC600. .shor 0x783e Running selftest print_one_insn::ARC601. Running selftest print_one_insn::ARC700. trap_s 0x1 Running selftest print_one_insn::ARCv2. trap_s 0x1 Running selftest print_one_insn::Loongarch32. ... Note: I've also removed the printing of arch_name, which would give us otherwise the redundant: ... Running selftest print_one_insn::A6. arc .shor 0x783e Running selftest print_one_insn::A7. arc trap_s 0x1 ... Tested on x86_64-linux.
This commit is contained in:
parent
772f4c2e98
commit
faec7017f0
@ -171,7 +171,7 @@ print_one_insn_test (struct gdbarch *gdbarch)
|
||||
const gdb_byte *insn,
|
||||
size_t len)
|
||||
: gdb_disassembler (gdbarch,
|
||||
(run_verbose () ? gdb_stdout : &null_stream),
|
||||
(run_verbose () ? gdb_stdlog : &null_stream),
|
||||
gdb_disassembler_test::read_memory),
|
||||
m_insn (insn), m_len (len)
|
||||
{
|
||||
@ -180,16 +180,10 @@ print_one_insn_test (struct gdbarch *gdbarch)
|
||||
int
|
||||
print_insn (CORE_ADDR memaddr)
|
||||
{
|
||||
if (run_verbose ())
|
||||
{
|
||||
gdb_printf (stream (), "%s ",
|
||||
gdbarch_bfd_arch_info (arch ())->arch_name);
|
||||
}
|
||||
|
||||
int len = gdb_disassembler::print_insn (memaddr);
|
||||
|
||||
if (run_verbose ())
|
||||
gdb_printf (stream (), "\n");
|
||||
debug_printf ("\n");
|
||||
|
||||
return len;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user