如何在Julia Debugger断点处执行任意代码(类似Python breakpoint())
解决Julia Debugger断点处执行任意代码的问题
问题出在Julia的Debugger包调试REPL默认识别的是调试命令(如步进s、继续c、下一步n等),而非直接执行Julia表达式,所以直接输入print(x)会被判定为未知命令。
要在断点处执行任意Julia代码,只需在表达式前加上@前缀:
- 查看变量x的值:输入
@print(x),或者更简洁的@x - 执行计算:比如输入
@x * 3会返回计算结果 - 修改变量:输入
@x = 10,后续代码会使用修改后的值 - 执行多行代码:可以用分号分隔,比如
@y = x+1; print(y)
另外,也可以使用eval命令执行表达式,比如输入eval print(x)效果和@print(x)一致。如果想快速查看当前作用域的所有局部变量,直接输入locals()即可。
实际操作示例:
当运行@run main()触发断点后,调试提示符显示julia>debug>,此时:
julia>debug> @x 3 julia>debug> @print("x的值是:", x) x的值是:3 julia>debug> @x = 5 5 julia>debug> c # 输入c继续执行 Exiting function main...5
内容的提问来源于stack exchange,提问作者NNN
相关产品推荐
相关产品推荐

