apple / foundationdb

FoundationDB - the open source, distributed, transactional key-value store

Home Page:https://apple.github.io/foundationdb/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

addr2line no longer reports line number for clang build

jzhou77 opened this issue · comments

Example below. This seems to be related to DWARF error: section .debug_info is larger than its filesize!

addr2line -e fdbserver.debug -p -C -f -i 0x7fb015e2e630 0x273e056 0x19fc2d8 0x1b0ffb2 0x2747515 0x2746113 0x19fc2d8 0x20626c6 0x32bc46a 0x329ec2d 0x1d6c64f 0x4d92b6e 0x4d92443 0x19fc2d8 0x4e82971 0x4e8248a 0x2fe949c 0x7fb015a73555
?? ??:0
addr2line: DWARF error: section .debug_info is larger than its filesize! (0x239be757 vs 0x1edd3280)
ActorCallback<(anonymous namespace)::GetPeekCursorDataActor, 1, Void>::fire(Void const&) at LogRouter.actor.g.cpp:?
void SAV<Void>::send<Void>(Void&&) at ApplyMetadataMutation.cpp:?
AsyncVar<Reference<ILogSystem> >::setUnconditional(Reference<ILogSystem> const&) at BackupWorker.actor.g.cpp:?
(anonymous namespace)::LogRouterCoreActorState<(anonymous namespace)::LogRouterCoreActor>::a_body1loopBody1when1(Void const&, int) at LogRouter.actor.g.cpp:?
ActorCallback<(anonymous namespace)::LogRouterCoreActor, 0, Void>::fire(Void const&) at LogRouter.actor.g.cpp:?
void SAV<Void>::send<Void>(Void&&) at ApplyMetadataMutation.cpp:?
AsyncVar<ServerDBInfo>::setUnconditional(ServerDBInfo const&) at ClusterController.actor.g.cpp:?
(anonymous namespace)::WorkerServerActorState<(anonymous namespace)::WorkerServerActor>::a_body1cont1loopBody1when1(UpdateServerDBInfoRequest&&, int) at worker.actor.g.cpp:?
ActorSingleCallback<(anonymous namespace)::WorkerServerActor, 0, UpdateServerDBInfoRequest>::fire(UpdateServerDBInfoRequest&&) at worker.actor.g.cpp:?
NetNotifiedQueue<UpdateServerDBInfoRequest, false>::receive(ArenaObjectReader&) at BlobManager.actor.g.cpp:?
(anonymous namespace)::DeliverActorState<(anonymous namespace)::DeliverActor>::a_body1cont1(int) at FlowTransport.actor.g.cpp:?
ActorCallback<(anonymous namespace)::DeliverActor, 0, Void>::fire(Void const&) at FlowTransport.actor.g.cpp:?
void SAV<Void>::send<Void>(Void&&) at ApplyMetadataMutation.cpp:?
Sim2::execTask(Sim2::PromiseTask&) at sim2.actor.g.cpp:?
Sim2::runLoop(Sim2*) at sim2.actor.g.cpp:?
main at fdbserver.actor.g.cpp:?
?? ??:0

We've started using llvm-addr2line to get around this problem. You could also try newer versions of addr2line. I think they were working on some fixes to these problems, though I'm not sure if they are released yet.

Thanks for the tip! llvm-addr2line works fine.