This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: ARC disassembler Valgrind error


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 <Anton.Kolesov@synopsys.com>
> Cc: GDB Patches <gdb-patches@sourceware.org>
> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]