调试问题
我有两个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”语句等效的语句,因此我可以在代码中硬编码一个断点。 为什么不像下面这样更有意义?如果必须的话,从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)
重新停止(退出) 正如我已经提到的,我不能对代码进行任何修改。我只能调试它。
所以问题是如何调试整个代码。
此外,exit退出函数,我们无法从下一条语句继续执行,这就是“Stop”所做的。 此代码中未定义函数test2,因此尝试评估test2将产生错误:
_$(测试2)
; 错误:无函数定义:TEST2
_$
似乎不需要太多的调试。
如果调试更严重的问题,您可以使用调试工具栏中的“切换断点”按钮来设置断点,并使用同一工具栏中的“单步执行”、“单步执行”和“单步执行”按钮来计算断点后的每个表达式。 好啊这是打字错误,代码应如下所示:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 测试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中的代码也会在任何断点处不中断地执行。
我需要知道为什么会发生这种情况,以及如何克服这种情况。 NirantarVidyarthee,
请阅读代码发布指南,并编辑您的帖子以包括代码标签。 NirantarVidyarthee,
尝试,调试==>动画
第二个文件将被加载,您将看到它正在运行
亨里克 抱歉,使用调试>动画,用户无法控制。它不考虑任何断点。 为了调试,我使用了动画和出错中断
当出现错误时,它就会停止,你可以看到错误。。。 嗯,席尔瓦,谢谢!它适用于示例代码。现在我希望它能在更大、更复杂的工作代码上工作。
再次感谢。
顺便问一下,有人用过视图>符号服务吗。。。?它与使用动画和出错停止方法有什么不同?
页:
[1]
2