如何在GDB中逐行打印二维数组?

时间:2018-04-01 01:50:38

标签: c++ arrays printing gdb

map[22][22];

我想通过GDB看到'map(2-D array)',结果就像这样

  

$ 1 = {{-1重复22次},{-1,4,4,4,4,3,3,2,1,0,4,-1重复11次},{-1,1 ,1,2,2,5,2,0,0,0,2,-1重复11次},{-1,3,0,0,1,1,1,0,0,0,0, -1重复11次},{-1,1,0,0,0,0,0,-1,4,4,1,-1重复11次},{-1,0,0,0,0 ,0,0,2,2,0,0,-1次重复11次},{-1,0,0,0,0,0,0,0,1,0,0,-1次重复11次} ,{-1,0,0,0,0,0,0,0,0,0,0,-1重复11次},{-1,0,0,0,0,0,0,0, 0,0,0,-1重复11次},{-1,0,0,0,0,0,0,0,0,0,0,-1重复11次},{-1,0, 0,0,0,0,0,0,0,0,0,-1重复11次>},{ - 重复22次}重复11次>}

看到它是如此无用......

我希望看到这样的

{-1,-1,-1,-1,-1,-1,-1,1}

{1,2,3,4,5,2,4,}

{2,1,4,5,3,4,2,2}

...

你能说出如何逐行打印2-D数组吗?

1 个答案:

答案 0 :(得分:1)

  

我希望看到这样的

有两种方法可以实现这一目标:

  1. 在您的程序中实现debug_print()函数,使用call命令从GDB调用它。
  2. 实施Python漂亮的打印机。 DocumentationTutorial
  3. 第一个解决方案实现起来很简单,但是(与第二个解决方案不同)当您没有实时流程时(例如,core事后调试),它不会起作用。