1. 程式人生 > >Linux 下查詢 .so 檔案中函式入口

Linux 下查詢 .so 檔案中函式入口

有時候會想知道 .so 檔案中某些資訊,比如版本,函式入口等。strings 命令是個很有用的命令,比如我想知道 libstdc++.so 這個動態庫裡面是否有 refill 函式,可以用

$ strings libstdc++.so | grep refill

輸出

_ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm

由於 c++ 編譯後會修改函式簽名,可以用 c++filt命令恢復,

$ c++filt ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm

輸出

__gnu_cxx::__pool_alloc_base
::_M_refill(unsigned long)

另外,用 nm 命令也可以

$ nm -D libstdc++.so | grep refill