1. 日志:glog
a. github
https://github.com/google/glog
2. C/C++静态检查工具:cppcheck
a. github
https://github.com/danmar/cppcheck
b. 安装:
sudo apt-get install cppcheck
c. 使用:
对指定目录进行检查:cppcheck --enable=all 目录名
3. C++编译器:clang
a. 安装
sudo apt-get install llvm
sudo apt-get install clang
b. 使用
clang test.c
clang test.c -fsyntax-only # 检查语法和词法正确性
4. 错误检查:breakpad
a. github
https://github.com/google/breakpad
b. 安装:
cd breakpad-master
./configure
make
两个可执行文件:src/processor/minidump_stackwalk,src/tools/linux/dump_syms/dump_syms
c. 使用:
breakpad捕获到的dmp文件:test.dmp
dmp文件对应的so库:test.so
获取symbol文件:dump_syms test.so > test.so.sym
得到可读的堆栈跟踪文件:minidump_stackwalk test.dmp test.so.sym > crash.log
5. 断点:debugbreak
a. github
https://github.com/scottt/debugbreak
b. 使用
在代码指定位置打断点:debug_break(); /* will break into debugger */
6. 调试:valgrind(内存泄漏/内存越界)
help50 valgrind ./test # 检索出重要的信息
7. gdb
a. 编译:gcc -g -Wall -Werror test.c
i. -g:生成调试信息
ii. -Wall:显示警告
iii. -Werror :把警告视为错误
b. 调试:gdb a.out
i. 加断点:第n行加断点:b n
ii. 查看断点信息:b
iii. 删掉第i个断点:d i
iv. 运行:run
v. 打印变量i的值:p i
vi. 往下运行:n
vii. 退出当前函数:finish
viii. 退出:q
c. 图形界面
i. 从头开始运行:start
ii. 现在运行的文件:list
iii. 打开图像:gdb ./a.out --tui (快捷方式:按住ctrl,再按x,松开x,再按a)