bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/13295] New: Segfault and/or incorrect output in objdump wh


From: zoltan at bendor dot com.au
Subject: [Bug binutils/13295] New: Segfault and/or incorrect output in objdump when disassembling an ARM library
Date: Fri, 14 Oct 2011 01:00:38 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=13295

             Bug #: 13295
           Summary: Segfault and/or incorrect output in objdump when
                    disassembling an ARM library
           Product: binutils
           Version: 2.21
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
        AssignedTo: address@hidden
        ReportedBy: address@hidden
    Classification: Unclassified


Created attachment 5988
  --> http://sourceware.org/bugzilla/attachment.cgi?id=5988
The gcc support lbrary for arm-elf target

When disassembling a static library (libgcc.a, in this case) objdump 2.21.1
sometimes misses the THUMB/ARM mode switches i.e. disassembles ARM code for
THUMB or the other way around. Using -t --special-syms shows the mode switch
symbols at the correct places, yet the disassembly still misses them sometimes.

Objdump also crashes on the file, gdb shows this:

---------------------------------
(gdb) run -d /usr/local/lib/gcc/arm-elf/4.5.3/libgcc.a

[lots os disassembled lines deleted]

_lshrdi3.o:     file format elf32-littlearm


Disassembly of section .text:

00000000 <__aeabi_llsr>:

Program received signal SIGSEGV, Segmentation fault.
0x0807b436 in get_map_sym_type (pc=0, info=<value optimized out>, little=1)
    at ../../binutils-2.21.1/opcodes/arm-dis.c:4503
4503      if (info->section != NULL && info->section !=
info->symtab[n]->section)
(gdb) backtrace
#0  0x0807b436 in get_map_sym_type (pc=0, info=<value optimized out>, little=1)
    at ../../binutils-2.21.1/opcodes/arm-dis.c:4503
#1  print_insn (pc=0, info=<value optimized out>, little=1)
    at ../../binutils-2.21.1/opcodes/arm-dis.c:4684
#2  0x0804cc44 in disassemble_bytes (abfd=0x811ffe8, section=0x8128f9c, 
    inf=0xbffff02c) at ../../binutils-2.21.1/binutils/objdump.c:1622
#3  disassemble_section (abfd=0x811ffe8, section=0x8128f9c, inf=0xbffff02c)
    at ../../binutils-2.21.1/binutils/objdump.c:2051
#4  0x0808764c in bfd_map_over_sections (abfd=0x811ffe8, 
    operation=0x804c630 <disassemble_section>, user_storage=0xbffff02c)
    at ../../binutils-2.21.1/bfd/section.c:1274
#5  0x0804e3cc in disassemble_data (abfd=0x811ffe8)
    at ../../binutils-2.21.1/binutils/objdump.c:2186
#6  dump_bfd (abfd=0x811ffe8) at ../../binutils-2.21.1/binutils/objdump.c:3087
#7  0x0804e8d7 in display_bfd (abfd=0x811ffe8)
    at ../../binutils-2.21.1/binutils/objdump.c:3163
#8  0x0804e9eb in display_file (filename=<value optimized out>, 
    target=<value optimized out>)
    at ../../binutils-2.21.1/binutils/objdump.c:3217
#9  0x0804f55e in main (argc=3, argv=0xbffff254)
    at ../../binutils-2.21.1/binutils/objdump.c:3490
(gdb) 
------------------------------

The configuration is --target=arm-elf or --target-eabi, the result is the same.
The host is x86-linux, the host compiler is gcc-4.5.1 with binutils 2.21.

Attached is the (ELF) libgcc.a which makes it crash.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]