emacs调试器:我如何逐步退出?

Che*_*eso 7 debugging emacs elisp

我不知道为什么我在为elisp调试器编写文档时遇到这么多麻烦.

我看到它有一个"步入"(d)的命令.但对于我的生活,我看不出步出或步伐.

有人可以帮忙吗?

如果我在Backtrace缓冲区中有这个:

Debugger entered--returning value: 5047
  line-beginning-position()
* c-parse-state()
* byte-code("...")
* c-guess-basic-syntax()
  c-show-syntactic-information(nil)
  call-interactively(c-show-syntactic-information)
Run Code Online (Sandbox Code Playgroud)

...我在哪里放光标,键入什么键,退出parse-state()fn?我的意思是,运行直到fn返回,然后再次在调试器中停止.

Tre*_*son 5

调试时,我按下?,我看到:

o               edebug-step-out
f               edebug-forward-sexp
h               edebug-goto-here
Run Code Online (Sandbox Code Playgroud)

我相信o(它是step-out)和f(例如 step over)是您正在寻找的东西,尽管我也发现它们h非常有用。


out*_*tis 3

'c' 和 'j' 的工作方式有点像步出和步过。当遇到标记的帧(用“*”表示)时(文档说“退出”,但这似乎不是调试器的行为方式),调试器将重新进入。当顶部框架被标记时,它们的工作方式类似于跨步;如果不是,它们的工作方式就像步出一样。

在您的示例回溯中,输入任一内容都会跳出line-beginning-positioninto c-parse-state。帧标志应该被清除,因此第二次输入任何一个都应该跳出c-parse-state