ar
nm # 目標格式檔案分析,所以也可以分析.a檔案, .o .so 檔案
pstack # 跟蹤程序棧
strace # 跟蹤程序中的系統呼叫
objdump # 二進位制檔案分析
readelf # elf檔案格式分析
size # 程式在記憶體空間所佔的大小
使用的幾種簡單的工具
.a 檔案是是 .o 檔案的的集合
- 所以如果編譯時候報未定義的連線符號,那麼一定是缺少符號定義
nm -uca ***.o | grep
通過.a 檔案可以找到對應的未定義的符號是出現在那個.o 檔案裡面的,可以找到對應的.c 或者 .h 檔案
也可以直接通過
grep -nrh "" . 搜尋所有的原始檔來尋找未定義的符號是否包含
cat /pocketsphinx-5prealpha/src/libpocketsphinx/pocketsphinx.c | grep include | grep '"' | awk '' | xargs -n1 -i {} find . -name "{}"
執行過程: 預編譯 --> 編譯 --> 連線 --> 執行
編譯之後生成 .o 檔案,這個時候已經是彙編檔案了麼?
鏈結生成可執行檔案
靜態庫執行也更快速
./vcpkg search catch # 查詢安裝包
./vcpkg install catch2 # 安裝,之後會給你一些提示資訊
如下
the package catch2:x64-linux provides cmake targets:
find_package(catch2 config required)
target_link_libraries(main private catch2::catch2)
那麼就可以在專案當中的cmakelist檔案當中配置 除錯工具 之Python除錯工具pycharm
1 pycharm的安裝 pycharm是一款非常好用的python ide,提供專業版和社群版,就像eclipse和myeclipse一樣,專業版是收費的,而社群版是免費的但功能就沒有專業版的功能強大。1.2 安裝 這裡就不必細說,直接next就ok ps 安裝完成後一定要執行 1.3 破解 採用...
c語言除錯工具簡介
概述 測試有很多方面,例如執行時間 函式呼叫關係圖 覆蓋度 效能分析 profiling 記憶體訪問越界 segmentation fault 緩衝區溢位 stack smashing 合法地進行非法的記憶體訪問?所以很危險 記憶體洩露 memory leak 測試工具簡介 1.測試程式的執行時間t...
gflags除錯工具
gflags windows除錯工具。使用它幫助我解決了瞎調了一整天的記憶體問題。由於使用了已經delete的指標,vs提示位置又錯誤的情況下,瞎調了一通。怎麼想那塊也不會有問題,可是抱著對vs的信任把錯就歸咎於自己吧!偶然的機會,搜到了gflags,抱著試一試的心態,使用該工具 1.安裝 debu...