如何在gdb中显示二维数组?

3

我正在使用gdb调试器调试一段C++程序。

我有一个100x100的数组,只想查看5行和5列的元素而不是全部。

对于一维数组,我可以使用以下命令:

display *arr@5

但是如何显示一个二维数组呢?
我尝试了以下方法但都失败了:
display *arr@5*5
display *arr@5 5

4
Try display **arr@5@5 - Simon Kraemer
1
是的,它起作用了,谢谢Simon Kraemer。 - Ali Ramezanian Nik
2个回答

3
您可以创建一个函数来按照您想要的方式打印信息,例如:
void print_matrix(int matrix[100][100], int number)
{
    int i, j;
    for (i = 0; i < number; ++i)
    {
        for (j = 0; j < number; ++j)
            std::cout <<  matrix[i][j] << " ";
        std::cout << "\n";
    }
}

然后在gdb中调用它:

call print_matrix(arr, 5)

1
使用“双重循环”来打印函数并在GDB中调用它就可以完成。这里我添加了一个类似问题的链接。祝好运!

这里是一个示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接