Last active
January 29, 2024 16:10
-
-
Save azat/c6f808cc7d270142ed3f3eb297646a15 to your computer and use it in GitHub Desktop.
Wrapper for llvm addr2line (faster then binutils) for perf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# This is wrapper for faster addr2line, that is required for "perf --call-graph dwarf" | |
# NOTE: since v6.3 perf supports specifying addr2line and supports LLVM so it is not required there | |
# stdbuf is important here to avoid buffering, otherwise perf will stuck | |
stdbuf -o0 -i0 sed -e 's/,//' -e 's/^$/ffffffffffffff/' | llvm-addr2line "$@" |
Author
azat
commented
Jan 29, 2024
This wrapper almost 7x faster
# time tr , '\n' <<<140602762285055,353180516,353180904,195201276,304433559,304512825,353200327,353201581,354519975,354510786,140602761813972,140602762339772 | xargs printf "%x\n" | addr2line -e /usr/lib/debug/.build-id/04/01bd8da6edab3e45399d62571357ab12545133.debug -i -f -e /usr/lib/debug/usr/bin/clickhouse.debug
??
??:0
_ZN4Poco3Net10SocketImpl8pollImplERNS_8TimespanEi
./.build/./base/poco/Net/src/SocketImpl.cpp:0
_ZN4Poco3Net10SocketImpl4pollERKNS_8TimespanEi
./.build/./base/poco/Net/src/SocketImpl.cpp:505
_ZNK4Poco3Net6Socket4pollERKNS_8TimespanEi
./.build/./base/poco/Net/include/Poco/Net/Socket.h:374
_ZNK2DB24ReadBufferFromPocoSocket4pollEm
./.build/./src/IO/ReadBufferFromPocoSocket.cpp:124
_ZN2DB10TCPHandler7runImplEv
./.build/./src/Server/TCPHandler.cpp:302
_ZN2DB10TCPHandler3runEv
./.build/./src/Server/TCPHandler.cpp:2194
_ZN4Poco3Net19TCPServerConnection5startEv
./.build/./base/poco/Net/src/TCPServerConnection.cpp:57
_ZNKSt3__114default_deleteIN4Poco3Net19TCPServerConnectionEEclB6v15000EPS3_
./.build/./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:48
_ZNSt3__110unique_ptrIN4Poco3Net19TCPServerConnectionENS_14default_deleteIS3_EEE5resetB6v15000EPS3_
./.build/./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:305
_ZNSt3__110unique_ptrIN4Poco3Net19TCPServerConnectionENS_14default_deleteIS3_EEED2B6v15000Ev
./.build/./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:259
_ZN4Poco3Net19TCPServerDispatcher3runEv
./.build/./base/poco/Net/src/TCPServerDispatcher.cpp:116
_ZN4Poco12PooledThread3runEv
./.build/./base/poco/Foundation/src/ThreadPool.cpp:202
_ZN4Poco9SharedPtrINS_8RunnableENS_16ReferenceCounterENS_13ReleasePolicyIS1_EEE6assignEPS1_
./.build/./base/poco/Foundation/include/Poco/SharedPtr.h:139
_ZN4Poco9SharedPtrINS_8RunnableENS_16ReferenceCounterENS_13ReleasePolicyIS1_EEEaSEPS1_
./.build/./base/poco/Foundation/include/Poco/SharedPtr.h:180
_ZN4Poco10ThreadImpl13runnableEntryEPv
./.build/./base/poco/Foundation/src/Thread_POSIX.cpp:350
??
??:0
??
??:0
real 0m1.060s
user 0m0.942s
sys 0m0.129s
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment