GDB使用指南

作者: 浅草墨蚂 | 来源:发表于2019-05-23 23:18 被阅读65次

    gdb是linux下的一款动态调试工具,以下是使用gdb调试程序常用到的命令,我尽量以图文的方式进行讲解,希望对初学者有所帮助。

    1.执行程序

    首先当然是得让程序运行起来

    (1)加载文件 gdb path/file
    1558622988(1).png

    注:后面介绍的命令均在文件加载后使用

    (2)start

    启动程序,并在程序第一句话处停下

    (3)r

    run 启动并执行程序,直到遇到断点或等待输入

    (4)c

    continue 继续执行程序

    2.查看内存情况

    (1)x/FMT
    该命令功能非常强大,支持多种格式显示内存的信息
    例:查看10个word长度内存以16进制显示 x/10wx 地址
    查看10个字节内存以指令显示 x/10i 地址
    格式的参数非常多,还好gdb有help的功能,可通过help x/ 可清楚的查看到使用方法(对于像我这种懒人,是从不记的,每次都通过help x/ 去找合适的格式命令)


    1558622109(1).png
    1558624088(1).png

    (2)其他查看信息的命令
    disas 查看汇编代码
    searchmem 搜索内存
    vmmap 列出内存状态
    info functions  --查看函数
    info b      --查看断点
    i r       --查看寄存器状态

    p 查看一个值
    p printf  --查看printf函数
    p 0x地址  --查看一个地址内存
    p myname --查看一个变量

    3.断点设置

    help breakpoints


    1558622155(1).png

    常用的命令
    (1)设置断点
     b *0x地址
     b 函数名
     b *函数名+偏移
    (2)删除断点
     delete breakpoints 标号

    4.开始调试

    n  next
    单步执行指令,不进入调用函数内部执行
    s  step
    遇到函数,步入函数内部继续执行
    finish --执行到返回

    watch  --设置监视,如果改变则断下
    例:
    watch *0x地址
    watch $epb
    set   --改变某值
    例:
    set a=10
    set *0x地址='AAAA'
    set &eax=0

    通过以上常用命令的介绍,希望能起到抛砖引玉的作用,想熟练掌握GDB的使用,还是需要大家多使用help命令,多练习,多研究。

    相关文章

      网友评论

        本文标题:GDB使用指南

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