aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-02-02 23:36:29 +0000
committerPedro Alves <palves@redhat.com>2017-02-02 23:36:29 +0000
commit9b6da501bff22325867d8afe42fa01d4704e72f8 (patch)
treecaaa575b6c2328182d5f584ef299b413b290ff99
parentb1ace6bdc2063f3dcf46172db98bb3474b6e1121 (diff)
downloadgdb-9b6da501bff22325867d8afe42fa01d4704e72f8.zip
gdb-9b6da501bff22325867d8afe42fa01d4704e72f8.tar.gz
gdb-9b6da501bff22325867d8afe42fa01d4704e72f8.tar.bz2
Fix "maintenance selftest" printing stray instructions
The "maintenance selftest" command is printing odd bits of stray instructions like: ~~~ brkwarning: A handler for the OS ABI "GNU/Linux" is not built into this configuration of GDB. Attempting to continue with the default HS settings. brkmov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0mov r0, #0breakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakbreakM3.L = 0xffff;/* ( -1) M3=0x0xffff(65535) */break 8break 8warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration of GDB. Attempting to continue with the default cris:common_v10_v32 settings. ~~~ etc. Those appear because here: class gdb_disassembler_test : public gdb_disassembler { public: const bool verbose = false; explicit gdb_disassembler_test (struct gdbarch *gdbarch, const gdb_byte *insn, size_t len) : gdb_disassembler (gdbarch, (verbose ? gdb_stdout : &null_stream), gdb_disassembler_test::read_memory), specifically in this line: (verbose ? gdb_stdout : &null_stream), "verbose" has not been initialized yet, because the order of initialization is base classes first, then members. I.e. "verbose" is only initialized after the base constructor is called. Since the gdb_disassembler_test object is created on the stack, "verbose" has garbage at that point. If the gargage is non-zero, then we end up with the gdb_disassembler_test's stream incorrectly pointing to gdb_stdout. gdb/ChangeLog: 2017-02-02 Pedro Alves <palves@redhat.com> * disasm-selftests.c (print_one_insn_test): Move the "verbose" field out of gdb_disassembler_test and make it static.
-rw-r--r--gdb/ChangeLog5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 95dfd00..202c90c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2017-02-02 Pedro Alves <palves@redhat.com>
+ * disasm-selftests.c (print_one_insn_test): Move the "verbose"
+ field out of gdb_disassembler_test and make it static.
+
+2017-02-02 Pedro Alves <palves@redhat.com>
+
* mi/mi-common.h (struct mi_interp): Delete the mi2_interp,
mi1_interp and mi_interp fields.