使用nim-gdb调试nim程序

时光总嘲笑我的痴心妄想 提交于 2020-03-19 20:26:53

3 月,跳不动了?>>>

安装

  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 来设置断点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等

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!