开发中有时会遇到程序本身编译没有错,但是就是不能运行的情况,让人纠结,下面通过一个例子说说如何通过core文件查看函数调用栈从而找出问题所在。
代码如下:
错误提示:
程序逻辑上并没有错误,下面看调试过程:
终端执行时发现有错误 core dump,查看是否产生core文件,通过gdb调试core文件
bt命令查看函数调用栈,找到自己写的地方,就可以看到哪条语句让程序挂了,这个例子中是#5的malloc有
问题,于是查看这条语句
由此可知malloc分配的内存为0,找出问题所在,在回到代码中找错误即可。