17.5 调试练习
- 安装
count-words-example
函数,然后在调用它时使其进入内置调试器。在包含两个单词的区域上运行该命令。你将需要按下 d 键很多次。在你的系统上,命令完成后是否有一个叫做 hook 的钩子?(有关 hooks 的信息,请参见 Command Loop Overview in The GNU Emacs Lisp Reference Manual。)
- 将
count-words-example
复制到 *scratch* 缓冲区中,为 Edebug 工具为该函数设置断点,并步进执行。该函数不一定要有 bug,尽管你可以引入一个如果愿意的话。如果函数没有 bug,步进执行将顺利完成。
- 在运行 Edebug 时,按下 ? 键以查看所有 Edebug 命令的列表。(
global-edebug-prefix
通常是 C-x X,即按下 CTRL-x 后再按一个大写的 X;在 Edebug 调试缓冲区之外使用此前缀执行命令。)
- 在 Edebug 调试缓冲区中,使用 p 命令(
edebug-bounce-point
)查看 count-words-example
在区域中的工作位置。
- 将光标移动到函数内部的某个位置,然后键入 h 命令(
edebug-goto-here
)跳转到该位置。
- 使用 t 命令(
edebug-trace-mode
)使 Edebug 自动步进执行函数;使用大写的 T 来使用 edebug-Trace-fast-mode
。
- 设置一个断点,然后在 Trace 模式下运行 Edebug,直到达到停止点。