美文网首页
GDB学习笔记

GDB学习笔记

作者: 闫正阳 | 来源:发表于2017-09-18 01:18 被阅读16次

    gdb

    GDB是一个强大的linux下的程序调试工具
    其使用过程如下:

    debug方式编译

    在编译前加上 -g

    gcc test.c -g -o test
    

    通过gdb启动程序

    gdb test
    

    为代码添加断点

    在gdb 命令模式下 (gdb):

    • list [n] 可以显示从n到n+10行的代码 ->l

    • break [n] 给第n行添加一个断点 ->b

    • break [func name] 给函数func入口设置断点

    • break if <condition> 设置条件断点

    • delete [i] 删除第i个断点

    • info break 显示断点信息

        (gdb) b 8
        Breakpoint 1 at 0x40053d: file test.c, line 8.
        (gdb) b func
        Breakpoint 2 at 0x40052d: file test.c, line 5.
        (gdb) b 20
        Breakpoint 3 at 0x40056c: file test.c, line 20.
        (gdb) info break
        Num     Type           Disp Enb Address            What
        1       breakpoint     keep y   0x000000000040053d in func at test.c:8
        2       breakpoint     keep y   0x000000000040052d in func at test.c:5
        3       breakpoint     keep y   0x000000000040056c in main at test.c:20
      
    • run 运行程序 -> r

    • watch <expr> 观察点

        Hardware watchpoint 4: i>50
      
        Old value = 0
        New value = 1
        0x0000000000400547 in func (n=250) at test.c:6
      

    在运行过程中:

    • next 单步运行 ->n

    • step 单步进行 ->s

    • print [x] 打印变量x的值 ->p

        (gdb) p i
        $25 = 51
      
    • backtrace 查看调用的函数堆栈 ->bt

        (gdb) bt
        #0  0x0000000000400547 in func (n=250) at test.c:6
        #1  0x000000000040059a in main () at test.c:24
      

    相关文章

      网友评论

          本文标题:GDB学习笔记

          本文链接:https://www.haomeiwen.com/subject/polvsxtx.html