Hi Simon, Thanks very much for reporting this! Hi Claudiu, Could you please take a look at this? It seems like a usage of uninitialized "needs_limm" variable here: https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=opcodes/arc-dis.c;hb=HEAD#l449 https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=opcodes/arc-dis.c;hb=HEAD#l479 Anton > -----Original Message----- > From: Simon Marchi [mailto:simon.marchi@ericsson.com] > Sent: Friday, October 20, 2017 21:07 > To: Anton Kolesov > Cc: GDB Patches > Subject: ARC disassembler Valgrind error > > Hi Anton, > > I noticed this error when running the GDB selftests under Valgrind. Could > you take a look or forward to whomever is responsible? > > Start gdb under Valgrind: > > $ valgrind ./gdb > > Ignore all the Python and Guile errors at startup (it's expected). Then run > > (gdb) maintenance selftest print_one_insn > > Here's what I get: > > ==12380== Conditional jump or move depends on uninitialised value(s) > ==12380== at 0xA0D93E: find_format (arc-dis.c:449) > ==12380== by 0xA0EC69: print_insn_arc (arc-dis.c:1121) > ==12380== by 0x733B9C: default_print_insn(unsigned long, > disassemble_info*) (arch-utils.c:957) > ==12380== by 0x414A39: arc_delayed_print_insn(unsigned long, > disassemble_info*) (arc-tdep.c:1433) > ==12380== by 0x8577C0: gdbarch_print_insn(gdbarch*, unsigned long, > disassemble_info*) (gdbarch.c:3273) > ==12380== by 0x7BB930: gdb_disassembler::print_insn(unsigned long, int*) > (disasm.c:765) > ==12380== by 0x7BC731: > selftests::print_one_insn_test(gdbarch*)::gdb_disassembler_test::print_ins > n(unsigned long) (disasm-selftests.c:130) > ==12380== by 0x7BC99E: selftests::print_one_insn_test(gdbarch*) (disasm- > selftests.c:163) > ==12380== by 0x91D6F1: selftests::gdbarch_selftest::operator()() const > (selftest-arch.c:73) > ==12380== by 0x91B361: selftests::run_tests(char const*) (selftest.c:88) > ==12380== by 0x8B738A: maintenance_selftest(char const*, int) > (maint.c:945) > ==12380== by 0x62465B: do_const_cfunc(cmd_list_element*, char*, int) > (cli-decode.c:122) > ==12380== > ==12380== Conditional jump or move depends on uninitialised value(s) > ==12380== at 0xA0DA26: find_format (arc-dis.c:479) > ==12380== by 0xA0EC69: print_insn_arc (arc-dis.c:1121) > ==12380== by 0x733B9C: default_print_insn(unsigned long, > disassemble_info*) (arch-utils.c:957) > ==12380== by 0x414A39: arc_delayed_print_insn(unsigned long, > disassemble_info*) (arc-tdep.c:1433) > ==12380== by 0x8577C0: gdbarch_print_insn(gdbarch*, unsigned long, > disassemble_info*) (gdbarch.c:3273) > ==12380== by 0x7BB930: gdb_disassembler::print_insn(unsigned long, int*) > (disasm.c:765) > ==12380== by 0x7BC731: > selftests::print_one_insn_test(gdbarch*)::gdb_disassembler_test::print_ins > n(unsigned long) (disasm-selftests.c:130) > ==12380== by 0x7BC99E: selftests::print_one_insn_test(gdbarch*) (disasm- > selftests.c:163) > ==12380== by 0x91D6F1: selftests::gdbarch_selftest::operator()() const > (selftest-arch.c:73) > ==12380== by 0x91B361: selftests::run_tests(char const*) (selftest.c:88) > ==12380== by 0x8B738A: maintenance_selftest(char const*, int) > (maint.c:945) > ==12380== by 0x62465B: do_const_cfunc(cmd_list_element*, char*, int) > (cli-decode.c:122) > > Thanks! > > Simon &j!z޶׍b֫rnr