因为之前一直使用gdb调试工具分析段错误产生的转存核心,这次出现的段错误没有生成转存核心,应该如何使用gdb调试工具进行分析呢?
首先第一步是安装调试工具
第二步是直接使用gdb l1app (其中l1app为软件编译出来的bin文件)
在调试之前需要使用 ldd l1app 查看l1app中的库是否连接正确,如果确实链接库,需要手动连接。
第三步进入gdb 命令行界面后输入run 开始执行调试。
在调试l1app时需要另外一个程序输入命令才能进行下一步调试的时候,我们可以运行另外一个程序,然后就可以继续调试了。
本文的核心在于没有生成转存内核的程序依旧可以直接对编译产生后的文件进行调试。
接下来是如何定位出现段错误所在的代码行:
在输入run命令后,会提示出现错误的信息,一把会精确到那个文件的哪一行,
如果不行的话,输入where查看程序可能出错的地方;
然后输入list,查看某一行附近的代码;
使用print可以查看变量的值。