bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/22911] New: Huge slowdown in objdump -d caused by scanning


From: mark at klomp dot org
Subject: [Bug binutils/22911] New: Huge slowdown in objdump -d caused by scanning the dynamic relocs
Date: Fri, 02 Mar 2018 11:19:16 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=22911

            Bug ID: 22911
           Summary: Huge slowdown in objdump -d caused by scanning the
                    dynamic relocs
           Product: binutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: mark at klomp dot org
                CC: jseward at acm dot org
  Target Milestone: ---

The following commit:

commit a24bb4f0cce83eea8b2ad1542316651143af6f90
Author: Nick Clifton <address@hidden>
Date:   Tue Oct 11 13:50:10 2016 +0100

    Enhance objdump so that it will use .got, .plt and .plt.got section symbols
when disassembling, and it will use dynamic relocs to interpret entries in the
PLT and GOT.

    binutils * objdump.c (is_significant_symbol_name): New function.
        (remove_useless_symbols): Do not remove significanr symbols.
        (find_symbol_for_address): If an exact match for the specified
        address has not been found, try scanning the dynamic relocs to see
        if one of these matches the address.  If so, use the symbol
        associated with the reloc.
        (objdump_print_addr_with_symbol): Do not print offsets to symbols
        with no value.
        (disassemble_section): Only use dynamic relocs if the user
        requested this.
        (disassemble_data): Always load dynamic relocs if they are
        available.

Caused a huge slowdown of disassembling some binaries.

Specifically reverting:
https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=binutils/objdump.c;h=59abc1189be5643a44405cc71cabb1397ae9f5d8;hp=2d2bddb03ce5fc9093befb61522e05371d783d66;hb=a24bb4f0cce83eea8b2ad1542316651143af6f90;hpb=199fa1b7089d7f7438b087fa30504ea5a590f561

Makes time ./binutils/objdump -d /usr/lib64/firefox/libxul.so > /dev/null go
from:

real    2m48.616s
user    2m48.242s
sys     0m0.160s

to:

real    0m11.781s
user    0m11.717s
sys     0m0.064s

-- 
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]