Debugging Lisp代码调试
,我发现了以下评论:传统的Lisp调试实践仍然可以使用Debugging Lisp代码调试,debugging,clojure,lisp,Debugging,Clojure,Lisp,,我发现了以下评论:传统的Lisp调试实践仍然可以使用 传统的调试实践是什么 通常,什么工具用于调试lisp(带/不带emacs) 基本上就是在运行时添加代码以打印出值,这样您就可以看到发生了什么。在emacs中运行edebug defun,您将看到lisp的魔力。我不知道Bill的具体意思,但IME: 通常,编辑器将有一个正在运行的实例连接到它。您可以立即编译函数以将它们插入到运行的映像中——因为Lisp有自己的编译器,您只需告诉运行的映像读取并编译一小部分文本。或者您可以直接运行函数,查看
- 传统的调试实践是什么
- 通常,什么工具用于调试lisp(带/不带emacs)
Lisp与其他高级编译语言之间的主要区别在于,在Lisp中,您基本上总是在编写带有调试程序的代码 由于clojure在问题中被标记,我将给出我们的观点 clojure编译器生成的类文件包含基于行和方法的调试信息,因此任何java调试器都将直接与clojure代码进行互操作,包括断点和对象检查
如果您使用emacs/slime作为开发环境,那么最近已经包括了与slime调试器的集成。由于文档有点稀疏,最好直接查看github上的支持范围。我称之为“传统的Lisp调试技术集”的方法有:
- 调试打印输出
- 函数跟踪(跟踪函数的每次调用) 在返回时,用对应于调用深度的缩进打印 值已打印)
- 显式调用映像内调试器
- 由于错误(例如,尝试添加整数和符号)而在图像调试器中结束