如果先前的命令失败,GDB命令将停止执行

时间:2019-08-29 09:27:39

标签: c linux gdb

在GDB中,要在击中断点时在数组中打印所有指针的值。可能存在值为0x0的数组元素。

例如:

arr[] = {0x0, 0x5cb04, 0x5510, 0x0, 0x5c84}

(gdb) info b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x1234 in fun1 at file1.c:200
        p arr
        p *arr[0]
        p *arr[1]
        p *arr[2]
        p *arr[3]
        c

但是GDB无法打印* arr [1],* arr [2],* arr [3],coz的值

  

* arr [0]遇到错误

     

“无法访问地址0x0处的内存”。

是否有解决此问题的方法或解决方法?

1 个答案:

答案 0 :(得分:1)

gdb print command可以使用任何有效的expression,因此您可以执行以下操作:

p (arr[0]) ? *arr[0] : "null"