1. core文件
有些程序crash后会保存一个core文件,包含crash时的一些信息,有助于调试
首先需要打开core机制,否则不会保存core文件
ulimit -a #查看限制
ulimit -c ulimited #不限制core文件大小,此时就会保存core文件了
有了core文件后,利用gdb可以查看信息,命令如下
gdb ./demo ./core.122
其中demo是crash的程序,core.123是保存的core文件, demo需要是debug版本的,gdb才可能从中加载符号表
进入gdb之后,输入bt或where即可看到crash时的堆栈状态
2. gdb调试中的layout src可以弹出一个文本框显示源码,很有效,ctrl-x a推出layout
layout窗口后,上下键被用来浏览代码,不知道如何选上一条/下一条命令
search regex: 向后搜索字符串regex
rev regex: 向前搜索字符串regex
3. valgrind
valgrind --tool=memcheck --leak-check=full ./demo pic.jpg