You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GDB中逐行打印二维数组?以map[22][22]为例

如何在GDB中逐行查看22x22的二维数组?

我完全懂你现在的烦恼——GDB默认打印二维数组时会把所有内容堆在一起,不仅容易看混,还会被截断,尤其是你的map[22][22]规模不算小。下面几个实用方法能帮你轻松实现逐行打印:

方法1:手动指定单一行打印

如果你只想查看某几行的内容,直接用print命令指定行号就行,行号从0到21(对应数组的22行):

print map[0]   # 打印第1行(索引0)
print map[1]   # 打印第2行(索引1)
# 以此类推,替换数字为你想看的行号

这种方式最快捷,适合临时抽查特定行的数据。

方法2:定义GDB脚本批量打印所有行

如果需要一次性查看全部22行,可以在GDB里定义一个简单的循环脚本:

define print_map
  set $i = 0
  while $i < 22
    print map[$i]
    set $i = $i + 1
  end
end

输入完上面的代码后,直接输入print_map,GDB就会自动逐行打印整个二维数组的内容,每行单独输出,不会杂乱堆积。

方法3:自定义格式打印(更规整)

要是你希望输出格式更整洁,比如带行号、元素用空格分隔,可以用printf自定义打印逻辑:

define print_map_neat
  set $i = 0
  while $i < 22
    printf "Row %2d: ", $i
    set $j = 0
    while $j < 22
      printf "%d ", map[$i][$j]
      set $j = $j + 1
    end
    printf "\n"
    set $i = $i + 1
  end
end

执行print_map_neat后,每行都会清晰显示行号和所有元素,排版更易读,适合需要仔细分析每行数据的场景。

小贴士:GDB里的$i、$j是临时变量,不会干扰你程序中的变量,放心使用就好~

内容的提问来源于stack exchange,提问作者이상도

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:55:54