在emacs中如何对common lisp打断点调试?

emacs中对common lisp调试方法的汇总

请问在emacs中如何对common lisp打断点调试?

感谢回复,你提供的这种方法需要设置debugger-hook,请问debugger-hook如何设置呢?是可以在任意一个函数处触发还是任意一个表达式处触发呢?

一般不需要手动设置吧,Emacs 上的 SLIME 和 SLY 都会自动设置全局的 *debugger-hook* ,想手动设置局部的 *debugger-hook* 可以用 let 覆盖特殊变量:

(let ((*debugger-hook* #|...|#))
   #|...|#)

多谢回复,可以提供这种调试方法的一个示例么?

要断点的地方加入 (break) ,代码执行到后会弹出 SLDB ,然后就可以进行单步调试了

1 个赞

多谢你的回复,除了break这种侵入式的,有非侵入式(不插入代码设置断点)的方法么?lispworks中好像可以直接通过点击设置断点。

可以看一下 SLY 的 Stickers ,也可以通过 sly-stickers-toggle-break-on-stickers 提供类似断点的功能,不过好像没法随意进行单步调试。

1 个赞

多谢你提供的参考!