开源项目推荐:C++堆栈跟踪打印器,backward-cpp

工具1、C++堆栈跟踪打印器,backward-cpp

用于发现和解决段错误的问题,Segmentation fault (core dumped)

https://github.com/bombela/backward-cpp

 

工具2、Qt Creator启用内存泄漏/越界检查工具

注意:目前仅支持GCC 4.8版本以上编译工具,建议使用GCC 4.9版本以上。不支持MSVC编译器

0x01 编译选项

  1. 开启内存泄露检查功能:-fsanitize=leak
  2. 开启地址越界检查功能:-fsanitize=address
  3. 开启越界详细错误信息:-fno-omit-frame-pointer

0x02 以Qt工程为例子

  • .pro项目文件:
SOURCES += main.cpp

# -fsanitize=leak意思为开启内存泄露检查
QMAKE_CXXFLAGS += "-fsanitize=leak"
QMAKE_CFLAGS   += "-fsanitize=leak"
QMAKE_LFLAGS   += "-fsanitize=leak"

# -fsanitize=address意思为开启内存越界检查
# -fno-omit-frame-pointer意思为显示更详细的信息
QMAKE_CXXFLAGS += "-fsanitize=address -fno-omit-frame-pointer"
QMAKE_CFLAGS   += "-fsanitize=address -fno-omit-frame-pointer"
QMAKE_LFLAGS   += "-fsanitize=address"

 

 

---

参考文献

https://cloud.tencent.com/developer/article/1784848

https://blog.csdn.net/xiangxianghehe/article/details/103111237

https://cloud.tencent.com/developer/article/1662860

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值