如何在gdb中显示2d数组?

时间:2016-11-21 17:20:57

标签: c++ c debugging gdb trace

我正在尝试用gdb调试器调试c ++语言的程序。

我有一个数组[100] [100],只想看到行和列的5个元素,而不是更多。

我可以使用以下命令处理1d数组:

display *arr@5

但是如何显示二维数组呢?

我试过这些但失败了:

display *arr@5*5
display *arr@5 5

2 个答案:

答案 0 :(得分:2)

您可以创建一个按照您希望的方式打印信息的功能,例如:

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 :(得分:1)

使用“double for”函数打印它然后在GDB上调用它几乎完成了它。在这里,我添加了一个相同类型的问题的链接。祝你好运!

Here an example