CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于中断循环(Visual LISP IDE)

2023-1-8 04:50| 发布者: admin| 查看: 247| 评论: 0|来自: AutoCAD

摘要: 表达式是 AutoLISP 的基本结构单元,Visual LISP 通过反复读取、计算和打印表达式来工作。这在 LISP 编程中通常称为读取-评估-打印循环。

表达式是 AutoLISP 的基本结构单元,Visual LISP 通过反复读取、计算和打印表达式来工作。这在 LISP 编程中通常称为读取-评估-打印循环。

注意:Visual LISP IDE 仅在 Windows 上可用。

Visual LISP 在顶级读取-评估-打印循环中执行 AutoLISP 程序,除非该程序已被中断或挂起以允许调试。在控制台窗口提示下计算表达式并显示正常提示时,您也在顶级工作。

当 AutoLISP 程序中断或挂起时,控制台窗口将传递控制权,您将进入中断循环。中断循环是一个单独的读取-评估-打印循环,嵌套在原始读取-评估-打印循环的下面。可以中断中断循环并在其下启动另一个读取-评估-打印循环。中断循环相对于顶层的嵌套级别称为中断级别

当您进入中断循环时,Visual LISP 会在控制台窗口提示符前面加上一个数字,指示您所在的级别。

例如,当您第一次在程序中输入中断循环时,提示会用数字 1 指示这一点:

_1_$
注意:在中断循环中,无法切换到 AutoCAD 窗口。

在中断循环中,您可以对程序在中断发生位置执行的所有变量具有读写访问权限。例如,如果中断发生在包含多个局部变量声明的函数中,则这些声明和任何全局变量都是可访问的。可以通过在控制台窗口提示符下输入带有函数的表达式来更改变量的值。setq

Visual LISP 支持两种类型的中断循环

  • 连续的中断循环允许您手动中断,然后恢复程序的执行。
  • 当错误导致中断时,将激活不可连续的中断循环。程序无法恢复,而是在退出中断循环后终止程序的执行。

连续的断环

可连续是最常见的中断循环,在想要单步执行和调试程序时使用。您可以通过以下任一方法在程序执行的第一个中断处进入连续的中断循环:

  • 打开“停止一次”模式并访问包含调试信息的表达式(即,从源代码加载的表达式,而不是从编译的文件加载.exe表达式)
  • 访问标记为“输入时调试”的函数
  • 到达您在程序中设置的断点
  • 通过按暂停按钮进入中断循环
  • 从上一个中断循环状态继续执行“步过”、“单步执行”或“步出”命令

在断点处停止时,可以通过以下方式控制后续程序执行:

  • 重置到顶层。终止所有当前活动的中断循环,并返回到控制台顶级读取-评估-打印循环。
  • 退出当前级别。终止当前断路环路并返回到上一级的分断环路。这可能是另一个中断循环或顶级读取-评估-打印循环。
  • 继续。从断点恢复正常的程序执行。
  • 跨过。查找与程序当前暂停的左括号匹配的右括号,并计算两者之间的表达式。
  • 踏入。跳转到嵌套表达式(如果有)。如果没有嵌套表达式,它将按顺序跳转到下一个表达式。
  • 走出去。搜索程序当前暂停的函数的末尾,并计算该点之前的所有表达式。

退出到顶级的所有中断循环后,控制台窗口提示符将返回到其原始形式(不带数字前缀)。

不可连续的中断循环

当错误导致程序中断并且启用了“出错时中断”选项时,将激活不可连续的中断循环。在不可连续的中断循环中,您可以访问错误环境中的所有变量,但不能继续执行程序或执行任何 Step 命令。

如果在不可连续的中断循环中激活 AutoCAD,则无法在命令窗口中输入任何内容;实际上,该窗口将不包含命令提示符。但是,如果您不小心尝试在 AutoCAD 命令窗口中键入任何内容,则键盘输入将排队,直到控制权返回到 AutoCAD 窗口(即,在退出中断循环并激活 AutoCAD 窗口之后)。此时,AutoCAD 将评估您键入的任何内容,就像您刚刚在命令提示下输入一样。

注意:可以通过检查“调试”菜单或工具栏上的“单步执行”和“继续”是否处于活动状态来区分可连续和不可连续的中断循环。

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 11:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部