常见调试指令
查看各个系统组件启动时输出信息
|
|
用GDB单步调试进程
|
|
参考:https://zhuanlan.zhihu.com/p/680065737
https://blog.csdn.net/qq_41839588/article/details/130236028
指令汇总:
|
|
用GDB看coredump文件
1.在Linux下,当程序崩溃时,会生成一个core文件,其中包含了程序崩溃时的内存状态信息。可以使用gdb调试器来分析core文件,定位到崩溃的代码位置。
具体步骤如下:
确认程序已经开启core dump功能。可以使用ulimit命令查看:
|
|
如果core file size为0,则需要设置core dump大小:
|
|
运行程序,让它崩溃,生成core文件。
另外,还需要确认程序是否被设置为不生成core文件。可以使用以下命令查看:
|
|
如果输出为空或者为“|/usr/share/apport/apport %p %s %c %d %P %E”,则表示程序被设置为不生成core文件。可以使用以下命令修改:
|
|
修改后,再次运行程序,让它崩溃,就可以生成core文件了。
使用gdb调试器打开core文件:
|
|
使用bt命令查看调用栈信息,找到崩溃的位置:
|
|
如果需要查看具体代码,可以使用list命令:
|
|
如果需要查看变量的值,可以使用print命令:
|
|
通过以上步骤,可以定位到崩溃的代码位置,并进行调试。
参考:https://blog.csdn.net/qq_62783912/article/details/130566836
cd /var/lib/systemd/coredump/
dump拷贝到程序运行目录,解压:
xz -d corefile.xz
运行gdb: gdb
在gdb中加载coredump文件:
core-file corefile
gdb bin/xxx/xxxImpl coredumpfile
如果没显示,运行bt指令
gdbserver使用
以ninja为例,编译指令:./configure.py –bootstrap
如果编译Debug版本,使用编译指令:./configure.py –bootstrap –debug
之后就可以使用GDB进行调试了:
|
|
|
|
GDB常用指令:
|
|
CLion配置:
|
|
https://www.jetbrains.com/help/clion/remote-debug.html
https://blog.csdn.net/Jony_T/article/details/120463462
https://www.jianshu.com/p/76ae75688079
https://www.cnblogs.com/cc1784380709/p/14341136.html
GDB脚本
|
|
1.txt:
|
|