[PATCH] D86539: [Debuginfo][llvm-dwarfutil] llvm-dwarfutil dsymutil-like tool for ELF.

Greg Clayton via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 4 16:12:14 PDT 2022


clayborg added a comment.

I tried running this on some binaries and was getting an assertion when address ranges overlap:

  (lldb) bt
  * thread #3, stop reason = hit program assert
      frame #0: 0x00007ff81170b112 libsystem_kernel.dylib`__pthread_kill + 10
      frame #1: 0x00007ff811741214 libsystem_pthread.dylib`pthread_kill + 263
      frame #2: 0x00007ff81168dd10 libsystem_c.dylib`abort + 123
      frame #3: 0x00007ff81168d0be libsystem_c.dylib`__assert_rtn + 314
      frame #4: 0x00000001011c913b llvm-dwarfutil`llvm::IntervalMapImpl::LeafNode<unsigned long long, long long, 8u, llvm::IntervalMapHalfOpenInfo<unsigned long long> >::insertFrom(this=0x000000010fc12e50, Pos=0x000070000b7d558c, Size=1, a=164948, b=164980, y=0) at IntervalMap.h:638:3
      frame #5: 0x00000001011c36ad llvm-dwarfutil`llvm::IntervalMap<unsigned long long, long long, 8u, llvm::IntervalMapHalfOpenInfo<unsigned long long> >::insert(this=0x000000010fc12e50, a=164948, b=164980, y=0) at IntervalMap.h:1085:27
      frame #6: 0x00000001011c355a llvm-dwarfutil`llvm::CompileUnit::addFunctionRange(this=0x000000010fc12d30, FuncLowPc=0x0000000000028454, FuncHighPc=0x0000000000028474, PcOffset=0) at DWARFLinkerCompileUnit.cpp:113:12
      frame #7: 0x00000001011d8035 llvm-dwarfutil`llvm::DWARFLinker::shouldKeepSubprogramDIE(this=0x00007ff7bfecd7e0, RelocMgr=0x0000600001706440, Ranges=size=888, DIE={0x000000000000e8c2}: DW_TAG_subprogram, File=0x0000600000c0ebb0, Unit=0x000000010fc12d30, MyInfo=0x00000001181cb5c0, Flags=3) at DWARFLinker.cpp:505:8
      frame #8: 0x00000001011d8271 llvm-dwarfutil`llvm::DWARFLinker::shouldKeepDIE(this=0x00007ff7bfecd7e0, RelocMgr=0x0000600001706440, Ranges=size=888, DIE={0x000000000000e8c2}: DW_TAG_subprogram, File=0x0000600000c0ebb0, Unit=0x000000010fc12d30, MyInfo=0x00000001181cb5c0, Flags=0) at DWARFLinker.cpp:522:12
    * frame #9: 0x00000001011d9d76 llvm-dwarfutil`llvm::DWARFLinker::lookForDIEsToKeep(this=0x00007ff7bfecd7e0, AddressesMap=0x0000600001706440, Ranges=size=888, Units=size=46, Die={0x0000000000009b4c}: DW_TAG_compile_unit, File=0x0000600000c0ebb0, Cu=0x000000010fc12d30, Flags=0) at DWARFLinker.cpp:794:23
      frame #10: 0x00000001011e928b llvm-dwarfutil`llvm::DWARFLinker::link(this=0x00007ff7bfecce90, I=0)::$_5::operator()(unsigned long) const at DWARFLinker.cpp:2518:9
      frame #11: 0x000000010121fab3 llvm-dwarfutil`llvm::DWARFLinker::link(this=0x00006000017143c8)::$_8::operator()() const at DWARFLinker.cpp:2598:7
      frame #12: 0x000000010121f9ed llvm-dwarfutil`decltype(__f=0x00006000017143c8)::$_8&>(fp)()) std::__1::__invoke<llvm::DWARFLinker::link()::$_8&>(llvm::DWARFLinker::link()::$_8&) at type_traits:3694:1
      frame #13: 0x000000010121f99d llvm-dwarfutil`void std::__1::__invoke_void_return_wrapper<void, true>::__call<llvm::DWARFLinker::link(__args=0x00006000017143c8)::$_8&>(llvm::DWARFLinker::link()::$_8&) at __functional_base:348:9
      frame #14: 0x000000010121f96d llvm-dwarfutil`std::__1::__function::__alloc_func<llvm::DWARFLinker::link()::$_8, std::__1::allocator<llvm::DWARFLinker::link()::$_8>, void ()>::operator(this=0x00006000017143c8)() at functional:1558:16
      frame #15: 0x000000010121e9b9 llvm-dwarfutil`std::__1::__function::__func<llvm::DWARFLinker::link()::$_8, std::__1::allocator<llvm::DWARFLinker::link()::$_8>, void ()>::operator(this=0x00006000017143c0)() at functional:1732:12
      frame #16: 0x0000000101219c12 llvm-dwarfutil`std::__1::__function::__value_func<void ()>::operator(this=0x0000600002108ac0)() const at functional:1885:16
      frame #17: 0x0000000101219bd5 llvm-dwarfutil`std::__1::function<void ()>::operator(this= Lambda in File DWARFLinker.cpp at Line 2594)() const at functional:2560:12
      frame #18: 0x0000000101219b9d llvm-dwarfutil`llvm::ThreadPool::createTaskAndFuture(this=0x0000600002108ab0)>)::'lambda'()::operator()() const at ThreadPool.h:95:15
      frame #19: 0x0000000101219b5d llvm-dwarfutil`decltype(__f=0x0000600002108ab0)>)::'lambda'()&>(fp)()) std::__1::__invoke<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'()&>(llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'()&) at type_traits:3694:1
      frame #20: 0x0000000101219b0d llvm-dwarfutil`void std::__1::__invoke_void_return_wrapper<void, true>::__call<llvm::ThreadPool::createTaskAndFuture(__args=0x0000600002108ab0)>)::'lambda'()&>(llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'()&) at __functional_base:348:9
      frame #21: 0x0000000101219add llvm-dwarfutil`std::__1::__function::__alloc_func<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'(), std::__1::allocator<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'()>, void ()>::operator(this=0x0000600002108ab0)() at functional:1558:16
      frame #22: 0x00000001012188c9 llvm-dwarfutil`std::__1::__function::__func<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'(), std::__1::allocator<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'()>, void ()>::operator(this=0x0000600002108aa0)() at functional:1732:12
      frame #23: 0x0000000101219c12 llvm-dwarfutil`std::__1::__function::__value_func<void ()>::operator(this=0x000070000b7d5f00)() const at functional:1885:16
      frame #24: 0x0000000101219bd5 llvm-dwarfutil`std::__1::function<void ()>::operator(this= Lambda in File ThreadPool.h at Line 94)() const at functional:2560:12
      frame #25: 0x0000000101840250 llvm-dwarfutil`llvm::ThreadPool::grow(this=0x00006000000083d0)::$_0::operator()() const at ThreadPool.cpp:59:9
      frame #26: 0x0000000101840105 llvm-dwarfutil`void llvm::thread::Apply<llvm::ThreadPool::grow(int)::$_0>(Callee=size=1, (null)=std::__1::index_sequence<> @ 0x000070000b7d5f58)::$_0>&, std::__1::integer_sequence<unsigned long>) at thread.h:42:5
      frame #27: 0x00000001018400c3 llvm-dwarfutil`void llvm::thread::GenericThreadProxy<std::__1::tuple<llvm::ThreadPool::grow(int)::$_0> >(Ptr=0x00006000000083d0) at thread.h:50:5
      frame #28: 0x000000010183fdf5 llvm-dwarfutil`void* llvm::thread::ThreadProxy<std::__1::tuple<llvm::ThreadPool::grow(int)::$_0> >(Ptr=0x00006000000083d0) at thread.h:60:5
      frame #29: 0x00007ff8117414f4 libsystem_pthread.dylib`_pthread_start + 125
      frame #30: 0x00007ff81173d00f libsystem_pthread.dylib`thread_start + 15


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86539/new/

https://reviews.llvm.org/D86539

STAMPS
actor(@clayborg) application(Differential) author(@avl) herald(H105) herald(H123) herald(H157) herald(H225) herald(H239) herald(H263) herald(H281) herald(H311) herald(H312) herald(H329) herald(H347) herald(H358) herald(H368) herald(H397) herald(H428) herald(H460) herald(H475) herald(H480) herald(H487) herald(H497) herald(H498) herald(H511) herald(H576) herald(H615) herald(H697) herald(H742) herald(H864) monogram(D86539) object-type(DREV) phid(PHID-DREV-wg4wmx55d4rma4dx3jtu) reviewer(@alexander-shaposhnikov) reviewer(@aprantl) reviewer(@clayborg) reviewer(@dblaikie) reviewer(@echristo) reviewer(@espindola) reviewer(@JDevlieghere) reviewer(@jhenderson) reviewer(@probinson) revision-repository(rG) revision-status(needs-review) subscriber(@clayborg) subscriber(@emaste) subscriber(@fedor.sergeev) subscriber(@hiraditya) subscriber(@jfb) subscriber(@jyknight) subscriber(@llvm-commits) subscriber(@MaskRay) subscriber(@mgorny) subscriber(@s.egerton) subscriber(@simoncook) subscriber(@steven_wu) tag(#all) tag(#debug-info) tag(#llvm) via(web)



More information about the llvm-commits mailing list