当通过 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;
}
在 gdb 中,a[] 如下所示
(gdb) disp a
1: a = {1, 2, 3, 4, 5}
但是如果我尝试打印 b[],因为它是一个指针(因为数组作为指针传递),所以内容看起来像这样
fun (b=0x7fffffffdf90, len=5) at main.c:14
(gdb) disp b
2: b = (int *) 0x7fffffffdf90
我希望能够看到 b[] 的内容,就像看到 a[] 一样,这样它可以帮助我调试。
我该怎么做?
最佳答案
您可以使用 artificial array 显示如下:
*b@len
关于c++ - 当从函数传递时如何在 gdb 中查看数组内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31223769/