【c++基础】linux系统代码调试
作者:互联网
前言
aarch64-linux-gnu-nm freespace
aarch64-linux-nm freespace
aarch64-linux-gnu-nm freespace
aarch64-linux-gnu-objdump -x -s -d freespace
addr2line 0x7f924d2dd0 -e freespace -f
readelf -w freespace
-fsanitize=address -g && ./freespace
man addr2line ps -aux -h| grep freespace
top 如果遇到addr2line得到??:?或??:0的情况,原因就是编译得到的so文件没有附加上符号表(symbolic)信息。 nm命令被用于显示二进制目标文件的符号表; objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息;
1.检测内存泄漏,可以用 ps -aux 等工具查看内存异常膨胀
2.定位并处理内存泄漏
- 静态代码分析工具 BEAM PC-lint splint
- 动态分析工具 valgrind 、purify
- 重载类的 new 和 delete 添加日志信息,日志分析定位内存泄漏
标签:泄漏,nm,freespace,c++,内存,linux,addr2line,调试 来源: https://www.cnblogs.com/happyamyhope/p/14036118.html