如何使用gdb在guile脚本中触发断点?

如何使用gdb在guile脚本中触发断点?,gdb,guile,Gdb,Guile,gdb支持guile。我正在尝试使用调试功能 以下是我的尝试: 使用“gr”命令进入交互式会话 加载方案文件 为名为create_branchs的过程设置断点 最后调用create_树,它调用create_分支 我希望调用(树3)会触发断点。但它不会发生吗?为什么? 这是stackoverflow_42404315.scm: (define (tree n) (create_trunk) (create_branches n)) (define (create_trunk) 1

gdb支持guile。我正在尝试使用调试功能

以下是我的尝试:

  • 使用“gr”命令进入交互式会话
  • 加载方案文件
  • 为名为create_branchs的过程设置断点
  • 最后调用create_树,它调用create_分支
我希望调用(树3)会触发断点。但它不会发生吗?为什么?

这是stackoverflow_42404315.scm:

(define (tree n)
  (create_trunk)
  (create_branches n))

(define (create_trunk)
  1)

(define (create_branches n)
  n)
这是gdb会话:

bash-3.2$ gdb
GNU gdb (GDB) 7.10
(gdb) gr
GNU Guile 2.0.12
scheme@(guile-user)> ,load "stackoverflow_42404315.scm"
scheme@(guile-user)> ,break create_branches
Trap 0: Breakpoint at #<procedure create_branches (n)>.
scheme@(guile-user)> (tree 3)
$1 = 3
scheme@(guile-user)> ,traps
  0: Breakpoint at #<procedure create_branches (n)>
bash-3.2$gdb
GNU gdb(gdb)7.10
(gdb)gr
GNU Guile 2.0.12
方案@(guile user)>,加载“stackoverflow_42404315.scm”
方案@(guile user)>,断开创建分支
陷阱0:在#处的断点。
方案@(欺诈用户)>(树3)
$1 = 3
方案@(欺骗用户)>,陷阱
0:断点位于#

我不确定gdb对guile断点有任何正面或负面的影响。如果您从shell而不是从gdb运行
guile
,您会看到同样的问题吗?谢谢您的回复。如果我只是运行guile,那么我将进入一个没有调试功能的scheme解释器。如果运行
guile
并键入
,help break
,它是否会给出错误?如果是这样,您能否运行
guile--version
并告诉我们它说了什么?scheme@(guile user)>,帮助中断用法:在调用过程时中断过程中断。调用过程时启动递归提示。良好。您可以尝试使用独立guile在程序中设置断点吗?如果它失败了,我们可以把gdb排除在考虑范围之外,只专注于欺骗。你能发布一个小的scheme程序来说明这个bug吗?我不确定gdb对guile断点有任何正面或负面的影响。如果您从shell而不是从gdb运行
guile
,您会看到同样的问题吗?谢谢您的回复。如果我只是运行guile,那么我将进入一个没有调试功能的scheme解释器。如果运行
guile
并键入
,help break
,它是否会给出错误?如果是这样,您能否运行
guile--version
并告诉我们它说了什么?scheme@(guile user)>,帮助中断用法:在调用过程时中断过程中断。调用过程时启动递归提示。良好。您可以尝试使用独立guile在程序中设置断点吗?如果它失败了,我们可以把gdb排除在考虑范围之外,只专注于欺骗。你能发布一个小方案程序来说明这个错误吗?