gdb简单指令以及core文件调试——Linux调试基本技能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/FlayHigherGT/article/details/83788517

core文件调试步骤——直接定位段错误堆栈

1、ulimit -c unlimited设置core文件无限制

2、echo “/root/core” > /proc/sys/kernel/core_pattern制定core文件生成的路径,注意路径后要加上core

3、在本地执行自己的二进制文件,使之产生段错误,会在之前设置的路径下生成一个core.93919(后面数字随机)文件

4、gdb ./二进制文件  core.93919会进入调试阶段,之后使用bt,就可以输出段错误的地方了,指示的很明确

第4步或者使用gdb --core=core.93919进入gdb调试,再输入file 可执行文件告诉gdb哪个可执行文件,再bt也能显示出段错误的地方

gdb调试的具体方法:

    l 1    显示第一行以下的n行,(如果是上面的情况直接输入l就好了),之后如果一直回车的话会一直有源程序显示出来。之后设置断点,break 33在33行设置断点,再输入r,让程序运行起来,他会运行到断点结束,之后你输入n,一步一步执行,p命令能打印出你的变量。

gdb常规命令:

    b 断点

    L 显示  L 20  显示20行

    p 打印

    n 单步

    r  运行

    step 进函数

    until 结束本循环

    info locals 所有局部变量的值

    info args 当前函数参数

    info frame 当前栈信息

    info thread 显示线程

    thread 2 切换到2工作线程

    bt 显示堆栈

    frame 1 显示某一堆栈

gdb加参数

    例如一个程序名为prog 参数为 -a b -c d

    运行gdb prog进入调试界面之后输入参数

    set args -a b -c d回车就好了

猜你喜欢

转载自blog.csdn.net/FlayHigherGT/article/details/83788517