+ 大多数Linux发行版关闭了内存转储功能,使用ulimit命令查看当前的内存转储是否有效:ulimit -c,如果为0则关闭了,使用ulimit -c unlimited或者设置一个上限可开启内核转储,当发生问题时进程的内存就会全部转储到内存转储文件core*中,可使用gdb调试生成的内核转储文件;
+ gdb的break设置断点可以有函数名、行号、文件名:行号、文件名:函数名、+偏移量、-偏移量、*地址;run执行到main函数可以用start;显示栈帧backtrace(bt);bt full不仅显示栈帧,还显示局部变量;info reg 显示寄存器;p /格式 变量名 显示变量值;x /格式 地址 显示内存数据;x /NFU ADDR;监视点 watch/awatch/rwatch <表示式>;设置变量的值 set variable 变量 = 表达式;
+ attach pid 调试正在运行的进程
+ continue/next/step 次数 执行指定次数的相应命令
+ disable/enable 禁用/启用断点
+ commands 断点编号 命令。。。。 end
+ 通过p命令显示过的值会记录在内部历史中,通过show value可以显示历史中的最后10个值
+ strace + 进程名 寻找故障原因的线索
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)