NirantarVidyart 发表于 2022-7-6 07:07:46

调试问题

我有两个autolisp程序,如下所示:
 
(defun c:test1()
(setq x 0)
(setq y 0)
(警报“test1”)
(加载“C:\\Documents and Settings\\Administrator\\Desktop\\test2.lsp”)
)
 
 
(defun fnTest2()
(setq x2 0)
(sewtq y2 0)
(警报“test2”)
)
(测试2)
 
注意,程序test1加载程序test2,然后test2自动执行函数fnTest2。这是一个现有的程序,我无法对其进行任何更改。
 
我打开文件test1。vlide中的lsp,然后使用工具>在编辑器中加载文本对其进行lad。
 
然后我启用调试>停止一次&调试>出错时中断。
 
然后我在命令提示符下键入test1,然后我可以使用F8键一步一步地调试这两个程序。该程序还突出显示了程序test2中包含错误的行。
 
当我“Rest to top level”并在命令提示符下再次键入test1时,我能够调试test1代码,但游标不会在程序Test2中停止,也不会高亮显示任何语句。
 
我做错了什么?
 
另外,VB中是否有与“stop”语句等效的语句,因此我可以在代码中硬编码一个断点。

BIGAL 发表于 2022-7-6 07:13:49

为什么不像下面这样更有意义?如果必须的话,从lisp作为事件链加载lisp可能会出现各种问题,可以通过脚本或菜单一次性加载所有defuns,如果一直使用,则自动加载。
 
(defun c:test1()
(setq x 0)
(setq y 0)
(alert "test1")
)


(defun fnTest2()
(setq x2 0)
(sewtq y2 0)
(alert "test2")
)

fntest1
(fntest2)

重新停止(退出)

NirantarVidyart 发表于 2022-7-6 07:19:29

正如我已经提到的,我不能对代码进行任何修改。我只能调试它。
 
所以问题是如何调试整个代码。
 
此外,exit退出函数,我们无法从下一条语句继续执行,这就是“Stop”所做的。

togores 发表于 2022-7-6 07:20:40

此代码中未定义函数test2,因此尝试评估test2将产生错误:
_$(测试2)
; 错误:无函数定义:TEST2
_$
似乎不需要太多的调试。
如果调试更严重的问题,您可以使用调试工具栏中的“切换断点”按钮来设置断点,并使用同一工具栏中的“单步执行”、“单步执行”和“单步执行”按钮来计算断点后的每个表达式。

NirantarVidyart 发表于 2022-7-6 07:25:13

好啊这是打字错误,代码应如下所示:
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 测试1.lsp
 
(defun c:test1()
(setq x 0)
(setq y 0)
(警报“test1”)
(加载“C:\\Documents and Settings\\Administrator\\Desktop\\test2.lsp”)
)
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 测试2.lsp
(defun fnTest2()
(setq x2 0)
(setq y2 0)
(警报“test2”)
)
(fnTest2)
 
这里的问题不是test2是否需要调试。问题是即使你想调试也无法调试。即使设置断点,Test2中的代码也会在任何断点处不中断地执行。
 
我需要知道为什么会发生这种情况,以及如何克服这种情况。

SLW210 发表于 2022-7-6 07:29:36

NirantarVidyarthee,
 
请阅读代码发布指南,并编辑您的帖子以包括代码标签。

hmsilva 发表于 2022-7-6 07:33:59

NirantarVidyarthee,
尝试,调试==>动画
第二个文件将被加载,您将看到它正在运行
 
亨里克

NirantarVidyart 发表于 2022-7-6 07:39:27

抱歉,使用调试>动画,用户无法控制。它不考虑任何断点。

hmsilva 发表于 2022-7-6 07:44:04

为了调试,我使用了动画和出错中断
当出现错误时,它就会停止,你可以看到错误。。。

NirantarVidyart 发表于 2022-7-6 07:50:23

嗯,席尔瓦,谢谢!它适用于示例代码。现在我希望它能在更大、更复杂的工作代码上工作。
 
再次感谢。
 
顺便问一下,有人用过视图>符号服务吗。。。?它与使用动画和出错停止方法有什么不同?
页: [1] 2
查看完整版本: 调试问题