如何在arm的機器上使用Address Sanitizer
阿新 • • 發佈:2021-02-03
如何在arm的機器上使用Address Sanitizer
Address Sanitizer是一個很好的檢測記憶體地址錯誤的工具,在gcc中有內建的庫,只要開啟編譯引數就可以使用了,但是arm是沒有的。手動編譯過於麻煩,我們可以使用別人已經編好的庫
-
檢視程式是什麼指令集,用file命令
-
如果是arm32位,gcc5,可以下載libgcc-5-dev-armel-cross。(arm32有el和hf之分,可以查詢一下)
sudo apt-get update
sudo apt-get install libgcc-5-dev-armel-cross
cd /usr/lib/gcc-cross/arm-linux-gnueabi/5/
find -name "*asan*"
- 然後將libasan.so, libasan.a, libasan-preinit.o 拷貝到你的編譯環境要連結的庫的目錄下就可以了
- 編譯和連結的引數都要加上-fsanitize=address,連結靜態庫還要都加上-static-libasan