Nim的Debug尝试

安装

  1. 前提有安装nim和mingw等
  2. nim新版本已加入nim-gdb工具方便调试, 没有可以下载放nim/bin下
  3. 下载安装python3
  4. 修改 nim/config/nim.cfg 里 大概214行 gcc.options.debug = “-g3 -O0 -gdwarf-3” 解决调试溢出问题

使用方法

首先我们写个dtest.nim

proc foo(x: int): int =
  let y = x + 2
  return y * 10
proc bar(x: int): int =
  if x == 3: return foo(x)
  return x * 100
proc main =
  var a = 1
  let str = "foobar"
  var seq1 = @[0, 1, 2, 3, 4]
  a = bar(1)
  a = bar(2)
  a = bar(3)
main()

然后终端运行 调试参数--debugger:native编译nim文件
nim c --debugger:native dtest.nim
编译完使用nim-gdb来调试程序
nim-gdb dtest

使用break或b 来设置断点 (输入函数名再按tab键 可以自动完成完整函数名)
b
用run或r 来运行, 就会停在第8行断点
list或l 来查看行数周围的代码列表

next或n 来运行下一行, print或r 查看变量

step或s 进入函数地址, continue或c运行到断点或结束, finish或fin 运行到跳出当前模块或断点
backtrace或bt 查看模块运行步骤, 从下往上
info break和delete或d 查看和删除断点
info locals查看当前模块变量
watch可以让选择查看的变量改变时 变成断点
until或u 可以跳出循环模块 像while, for等


原文链接:https://my.oschina.net/angluca/blog/3202507

注:已经原作者授权,转载请注明出处