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

1,090 阅读1分钟

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

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

github.com/bombela/bac…

 

工具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"

 

 

---

参考文献

cloud.tencent.com/developer/a…

blog.csdn.net/xiangxiangh…

cloud.tencent.com/developer/a…