参考资料:https://www.gitbook.com/?utm_source=legacy&utm_medium=redirect&utm_campaign=close_legacy

    .a#gdb.a#
    .|gdb:如何加入一个条件断点?比如for循环里面i=3才中断?
    .|break 17 if i=3

    .|gdb:在使用x打印内存的值的时候,如何显示为10进制?
    .|x/6d &ages
    具体效果如下:

    (gdb) x/6d &ages
    0x7fffffffd950: 23 43 12 89
    0x7fffffffd960: 2 0

    .|gdb:如何删除指定位置处的断点?
    .|clear 6
    .+
    .|gdb: 如何禁用断点?
    .|disable 6

    .|如何在进入断点后,打印变量的值,比如此处有一个变量i
    .|p i
    .+

    .|如何在进入断点后,查看变量在内存中存储的值? 比如下面的代码:
    short i = 0XFFFF
    .| 对应的命令是:

    x /2x &i

    /2x: x代表16进制显示,2x显示两个字节
    &i: x后面需要跟变量的地址,所以此处使用 &i来获取该地址
    .+

    .|gdb:如何打印出来指定内存地址中保存的值?比如内存地址:0x00005555555547c4(内存地址为32位)**
    .|x/s 0x00005555555547c4
    (gdb) p names
    $1 = {0x5555555547c4 “Alan”, 0x5555555547c9 “Frank”, 0x5555555547cf “Mary”, 0x5555555547d4 “John”,
    0x5555555547d9 “Lisa”}
    (gdb) x/s 0x5555555547c4
    0x5555555547c4: “Alan”

    .|gdb:在进入断点后,如何直接调用sizeof函数?
    .|call sizeof(i)

    .|gdb:如何输出变量所在的一段内存地址里面的值?比如变量x所在的内存地址往上的内容?
    .|x/45x &x
    会得到下面的输出内容:
    image.png
    .|gdb: 如何动态输出变量的值?
    .|p x

    .|gdb: 如何动态输出sizeof的值?
    .|p sizeof(x)