#163 "opreport --debug-info --symbols" segfaults

closed-works-for-me
nobody
None
5
2009-05-07
2008-04-01
Greg Hazel
No

warning: [vdso] (tgid:911 range:0x12d000-0x12e000) could not be found.
( lots of these )
warning: [vdso] (tgid:913 range:0x110000-0x111000) could not be found.
CPU: Core 2, speed 2128.04 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
warning: some functions compiled without debug information may have incorrect source line attributions

Program received signal SIGSEGV, Segmentation fault.
0x080eda9b in elf_find_function ()
Current language: auto; currently c
(gdb) bt
#0 0x080eda9b in elf_find_function ()
#1 0x080ef037 in _bfd_elf_find_nearest_line ()
#2 0x080c950e in find_nearest_line (b=@0xbfbe7960, sym=@0x97b6228, offset=2456) at bfd_support.cpp:539
#3 0x080c50fc in op_bfd::get_linenr (this=0xbfbe7930, sym_idx=0, offset=2456, source_filename=@0xbfbe7890, linenr=@0xbfbe785c) at op_bfd.cpp:351
#4 0x08096218 in profile_container::add (this=0xbfbe7a78, profile=@0xbfbe79d8, abfd=@0xbfbe7930, app_name=@0x97bb530, pclass=0) at profile_container.cpp:105
#5 0x08092176 in populate_for_image (archive_path=@0x8182d50, samples=@0xbfbe7a78, ip=@0x97aa4d0, symbol_filter=@0x8182d60, has_debug_info=0x0) at populate.cpp:92
#6 0x08072e1b in callgraph_container::populate (this=0xbfbe7b40, archive_path=@0x8182d50, iprofiles=@0xbfbe7bc8, extra=@0x8182f58, debug_info=true, threshold=0, merge_lib=false, sym_filter=@0x8182d60) at callgraph_container.cpp:408
#7 0x08055699 in opreport (spec=@0xbfbe7c24) at opreport.cpp:562
#8 0x0806230b in run_pp_tool (argc=2, argv=0xbfbe7d14, fct=0x805518e <opreport>) at common_option.cpp:207
#9 0x0804dfd9 in main (argc=2, argv=0xbfbe7d14) at opreport.cpp:587
#10 0x0025c390 in __libc_start_main (main=0x804df98 <main>, argc=2, ubp_av=0xbfbe7d14, init=0x813de80 <__libc_csu_init>, fini=0x813de70 <__libc_csu_fini>, rtld_fini=0x235940 <_dl_fini>, stack_end=0xbfbe7d0c) at libc-start.c:220
#11 0x0804c651 in _start ()
(gdb)

Discussion

  • Greg Hazel
    Greg Hazel
    2008-04-01

    • summary: "opreport -cgf" segfaults --> "opreport --debug-info --symbols" segfaults
     
  • Logged In: YES
    user_id=1355714
    Originator: NO

    Greg, are you still experiencing this problem? I cannot reproduce it. Can you provide platform information (hardware/distro), as well as the version of oprofile and binutils? Thanks.

     
  • Logged In: NO

    Intel(R) Core(TM)2 DUO / Fedora release 8 (Werewolf)

    oprofile 0.9.3 compiled on Oct 8 2007 10:36:39
    Name : oprofile
    Arch : i386
    Version: 0.9.3
    Release: 6.fc8

    Name : binutils
    Arch : i386
    Version: 2.17.50.0.18

    Ever since I started clearing out the temp files and restarting the daemon each run, it has not occured.

     
  • Logged In: YES
    user_id=1355714
    Originator: NO

    Closing as unreproducible.

     
    • status: open --> closed
     
  • Hi,

    Actually, oprofile is passing a NULL symbols table to bfd. Here is a more complete backtrace:
    #0 elf_find_function (abfd=0x855b0a8, section=0x8520e9c, symbols=0x0, offset=0, filename_ptr=0x0, functionname_ptr=0xbf89d680)
    at ../../bfd/elf.c:6982
    #1 0x0014c113 in _bfd_elf_find_nearest_line (abfd=0x855b0a8, section=0x8520e9c, symbols=0x0, offset=0, filename_ptr=0x0,
    functionname_ptr=0xbf89d680, line_ptr=0xbf89d678) at ../../bfd/elf.c:7060
    #2 0x080cea98 in find_nearest_line (b=@0xbf89da48, sym=@0x8511198, offset=34020, anon_obj=false) at bfd_support.cpp:554
    #3 0x080c935a in op_bfd::get_linenr (this=0xbf89da14, sym_idx=81, offset=34020, source_filename=@0xbf89d740, linenr=@0xbf89d864)
    at op_bfd.cpp:370
    #4 0x08070b15 in finish_sym (this=0xbf89d844, i=81, start=34020) at callgraph_container.cpp:233
    #5 0x080714b9 in callee_sym (this=0xbf89d844, off=34044) at callgraph_container.cpp:195
    #6 0x08072806 in callgraph_container::add (this=0xbf89dd80, profile=@0xbf89db4c, caller_bfd=@0xbf89da84, caller_bfd_ok=true,
    callee_bfd=@0xbf89da14, app_name=@0xbf89db78, pc=@0xbf89dc94, debug_info=true, pclass=0) at callgraph_container.cpp:556
    #7 0x08072d8c in callgraph_container::populate (this=0xbf89dd80, cg_files=@0x83fd10c, app_image=@0x83ef2c0, pclass=0, pc=@0xbf89dc94,
    debug_info=true, merge_lib=false) at callgraph_container.cpp:496
    #8 0x08072fd7 in callgraph_container::populate (this=0xbf89dd80, lset=@0x836e210, app_image=@0x83ef2c0, pclass=0, pc=@0xbf89dc94,
    debug_info=true, merge_lib=false) at callgraph_container.cpp:438
    #9 0x08073235 in callgraph_container::populate (this=0xbf89dd80, iprofiles=@0xbf89de50, extra=@0x81002f8, debug_info=true,
    threshold=0, merge_lib=false, sym_filter=@0x8100364) at callgraph_container.cpp:418
    #10 0x0805537a in opreport (spec=@0xbf89dea4) at opreport.cpp:564
    #11 0x08062985 in run_pp_tool (argc=6, argv=0xbf89df94, fct=0x8054f12 <opreport>) at common_option.cpp:210
    #12 0x0804dd39 in main (argc=6, argv=0xbf89df94) at opreport.cpp:590
    #13 0x00800390 in __libc_start_main (main=0x804dcf8 <main>, argc=6, ubp_av=0xbf89df94, init=0x80d9320 <__libc_csu_init>,
    fini=0x80d9310 <__libc_csu_fini>, rtld_fini=0x7d9940 <_dl_fini>, stack_end=0xbf89df8c) at libc-start.c:220
    #14 0x0804c3b1 in _start ()

     
  • I have a patch to binutils but I don't know how to add an attachment on this tracker since this bug is closed anyway.

     
  • In one of your comments, you say that "oprofile is passing a NULL symbols table to bfd". In another comment, you say you have a binutils patch. oprofile should not be passing NULL to bfd here -- that sounds like a bug in oprofile. What's the nature of the binutils patch you have?

     
    • status: closed --> open
     
  • Please respond to my previous comment or this bug will be closed. Thanks.

     
  • Closing per previous comment.

     
    • status: open --> closed-works-for-me