https://sourceware.org/bugzilla/show_bug.cgi?id=29081
Bug ID: 29081 Summary: objdump -S tends to be slow for thunderbird with separate debug info Product: binutils Version: 2.37 Status: UNCONFIRMED Severity: normal Priority: P2 Component: binutils Assignee: unassigned at sourceware dot org Reporter: mliska at suse dot cz Target Milestone: --- The debug info are big, so it's easiest to use a Docker image one can run locally: $ cat Dockerfile-thunderbird-objdump FROM opensuse/tumbleweed RUN zypper ar -f -c http://download.opensuse.org/source/tumbleweed/repo/oss/ source RUN zypper ar -f -c http://download.opensuse.org/debug/tumbleweed/repo/oss/ debug RUN zypper repos RUN zypper refresh RUN zypper -n install binutils MozillaThunderbird MozillaThunderbird-debugsource MozillaThunderbird-debuginfo perf RUN timeout 30 objdump --start-address=0x00000000017529e0 --stop-address=0x0000000001752c90 -S -d /usr/lib64/thunderbird/libxul.so $ podman build -t test -f Dockerfile-thunderbird-objdump STEP 1/7: FROM opensuse/tumbleweed STEP 2/7: RUN zypper ar -f -c http://download.opensuse.org/source/tumbleweed/repo/oss/ source --> Using cache 2393dd1a2d437960601510c9b9732d59c6a2b10e497e4f497c85bda870b88dc5 --> 2393dd1a2d4 STEP 3/7: RUN zypper ar -f -c http://download.opensuse.org/debug/tumbleweed/repo/oss/ debug --> Using cache 40f7646c586e72ca9247283da6c8cdc9388f18b636d879d3300afabc5c22d229 --> 40f7646c586 STEP 4/7: RUN zypper repos --> Using cache 8df3cd9239213c4d6857eb8c006ee239d45c0901571675c2701b0e68be74046b --> 8df3cd92392 STEP 5/7: RUN zypper refresh --> Using cache aeaaa59b2269d0af55364f3fabda58d9ae055fdc19ffe56aa7d3e0160723f552 --> aeaaa59b226 STEP 6/7: RUN zypper -n install binutils MozillaThunderbird MozillaThunderbird-debugsource MozillaThunderbird-debuginfo perf --> Using cache a4759602ecae1b53fe809c2835d42f607740a54bb42e491ea8cd8a3bc7ba6ae3 --> a4759602eca STEP 7/7: RUN timeout 30 objdump --start-address=0x00000000017529e0 --stop-address=0x0000000001752c90 -S -d /usr/lib64/thunderbird/libxul.so /usr/lib64/thunderbird/libxul.so: file format elf64-x86-64 Disassembly of section .text: 00000000017529e0 <_ZN7mozilla3gfx11VsyncSource7Display11NotifyVsyncERKNS_9TimeStampES5_>: objdump: DWARF error: could not find variable specification at offset 0x14bfaa4 objdump: DWARF error: could not find variable specification at offset 0x79e96 objdump: DWARF error: could not find variable specification at offset 0x14fb52b objdump: DWARF error: could not find variable specification at offset 0x14fb536 objdump: DWARF error: could not find variable specification at offset 0x14fb866 objdump: DWARF error: could not find variable specification at offset 0x1570854 objdump: DWARF error: could not find variable specification at offset 0x15a62fb objdump: DWARF error: could not find variable specification at offset 0x15a6a5f objdump: DWARF error: could not find variable specification at offset 0x15a7fde objdump: DWARF error: could not find variable specification at offset 0x15a927f objdump: DWARF error: could not find variable specification at offset 0x15ad94a objdump: DWARF error: could not find variable specification at offset 0x15a89fe objdump: DWARF error: could not find variable specification at offset 0x15ad9bc objdump: DWARF error: could not find variable specification at offset 0x15a6b27 objdump: DWARF error: could not find variable specification at offset 0x15ada15 objdump: DWARF error: could not find variable specification at offset 0x15a69f7 objdump: DWARF error: could not find variable specification at offset 0x15a8dd9 objdump: DWARF error: could not find variable specification at offset 0x15a809b objdump: DWARF error: could not find variable specification at offset 0x15adc31 objdump: DWARF error: could not find variable specification at offset 0x15adcc3 objdump: DWARF error: could not find variable specification at offset 0x15a89dc objdump: DWARF error: could not find variable specification at offset 0x15add48 objdump: DWARF error: could not find variable specification at offset 0x15add88 objdump: DWARF error: could not find variable specification at offset 0x15a6298 objdump: DWARF error: could not find variable specification at offset 0x15adacf objdump: DWARF error: could not find variable specification at offset 0x15add03 objdump: DWARF error: could not find variable specification at offset 0x15adc7e objdump: DWARF error: could not find variable specification at offset 0x15addd2 objdump: DWARF error: could not find variable specification at offset 0x83147e objdump: DWARF error: could not find variable specification at offset 0x15c988e objdump: DWARF error: could not find variable specification at offset 0x831489 objdump: DWARF error: could not find variable specification at offset 0x15c9899 objdump: DWARF error: could not find variable specification at offset 0x831494 objdump: DWARF error: could not find variable specification at offset 0x15c98a4 objdump: DWARF error: could not find variable specification at offset 0x83149f objdump: DWARF error: could not find variable specification at offset 0x15c9fc5 objdump: DWARF error: could not find variable specification at offset 0x15ca89d objdump: DWARF error: could not find variable specification at offset 0x15cafef objdump: DWARF error: could not find variable specification at offset 0xc4842 objdump: DWARF error: could not find variable specification at offset 0xf2d9bf objdump: DWARF error: could not find variable specification at offset 0x117a6f6 Error: error building at STEP "RUN timeout 30 objdump --start-address=0x00000000017529e0 --stop-address=0x0000000001752c90 -S -d /usr/lib64/thunderbird/libxul.so": error while running runtime: exit status 124 Note it's LTO-ed binary built with GCC. perf shows the time is spent here: $ perf report --stdio | head -n20 # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 117K of event 'cycles:u' # Event count (approx.): 125022478481 # # Overhead Command Shared Object Symbol # ........ ....... ......................... ............................................... # 76.03% objdump libbfd-2.38.20220411-4.so [.] comp_unit_maybe_decode_line_info.lto_priv.0 11.80% objdump objdump [.] check_gnu_debuglink 5.19% objdump libbfd-2.38.20220411-4.so [.] find_abstract_instance.lto_priv.0 1.48% objdump libbfd-2.38.20220411-4.so [.] read_attribute_value.lto_priv.0 0.85% objdump libbfd-2.38.20220411-4.so [.] arange_add.lto_priv.0 0.65% objdump objdump [.] compare_symbols 0.43% objdump libbfd-2.38.20220411-4.so [.] _bfd_safe_read_leb128.constprop.0 0.37% objdump libc.so.6 [.] __strlen_avx2 0.30% objdump libc.so.6 [.] __GI_strstr and note w/o -S option it finishes pretty quickly: $ time objdump --start-address=0x00000000017529e0 --stop-address=0x0000000001752c90 -d /usr/lib64/thunderbird/libxul.so ... 1752c77: 5b pop %rbx 1752c78: 5d pop %rbp 1752c79: 41 5c pop %r12 1752c7b: 41 5d pop %r13 1752c7d: 41 5e pop %r14 1752c7f: 41 5f pop %r15 1752c81: e9 ca c3 22 ff jmp 97f050 <_ZN7mozilla6detail9MutexImpl6unlockEv@plt> 1752c86: e8 b5 a1 22 ff call 97ce40 <__stack_chk_fail@plt> 1752c8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) real 0m4.330s user 0m3.998s sys 0m0.332s -- You are receiving this mail because: You are on the CC list for the bug.