Nim的Debug尝试
19 March 2020 路中鸟(Nim开发集中营)
安装
- 前提有安装nim和mingw等
- nim新版本已加入nim-gdb工具方便调试, 没有可以下载放nim/bin下
- 下载安装python3
- 修改 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键 可以自动完成完整函数名)
用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等
- 具体参考
Debug Nim with GDB
原文链接:https://my.oschina.net/angluca/blog/3202507
注:已经原作者授权,转载请注明出处