从函数传递时如何在gdb中查看数组内容

sal*_*ter 2 c c++ arrays gcc gdb

我想通过gdb看到我的数组作为参数传递给函数时的争议.

说,我有一些看起来像的代码

#include <stdio.h>

int fun(int b[], int len)
{ 
 int i = 0;

 /* how do I see the contents of array b[] in gdb */
 for(i = 0; i < len; ++i)
     printf("%d ", b[i]);
}

int main()
{
    int a[] = {1,2,3,4,5};

    fun(a, sizeof(a) / sizeof(*a));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在gdb中,[]如下所示

(gdb) disp a
1: a = {1, 2, 3, 4, 5}
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试打印b [],因为它是一个指针(因为数组作为指针传递),内容看起来像这样

fun (b=0x7fffffffdf90, len=5) at main.c:14
(gdb) disp b
2: b = (int *) 0x7fffffffdf90
Run Code Online (Sandbox Code Playgroud)

我希望能够看到b []的内容,就像我看到[]所以它有助于我调试.

我怎样才能做到这一点?