开发者

emacs debugger: how can I step-out, step-over?

I don't know why I'm having so much trouble groking the documentation for the elisp debugger.

I see it has a commands to "step-into" (d). But for the life of me, I cannot see a step-out or step-over.

Can anyone help?

If I have this in the Backtrace buffer:

Debugger entered--returning value: 5047开发者_如何学C
  line-beginning-position()
* c-parse-state()
* byte-code("...")
* c-guess-basic-syntax()
  c-show-syntactic-information(nil)
  call-interactively(c-show-syntactic-information)

...where do I put the cursor, and what key do I type, to step out of the parse-state() fn ? by that I mean, run until that fn returns, and then stop in the debugger again.


When debugging, I press ? and I see:

o               edebug-step-out
f               edebug-forward-sexp
h               edebug-goto-here

I believe o (it is step-out) and f (like step over) are what you're looking for, though I also find h extremely useful.


'c' and 'j' work kind of like a step-out and step-over. When a flagged frame (indicated by "*") is encountered (the docs say "exited" but this doesn't seem to be how the debugger behaves), the debugger will be re-entered. When the top frame is flagged, they work like step-over; when it isn't, they work like step-out.

In your example backtrace, typing either will step out of line-beginning-position into c-parse-state. The frame flag should clear, so typing either a second time should step out of c-parse-state.


Hm. I, for one, prefer debug to edebug, but to each her own...

As to debug, I use d, c, e, and q.

If you do use debug, one thing to keep in mind, which can save time and effort, is that when you see a macro call (starts with#) you can just hit c to expand the macro -- there is normally no sense in digging into the macro expansion code (unless you wrote the macro and you are trying to debug it).

In particular, for dolist, there are two levels of macroexpansion to skip over using c: one for dolist and one for block.

HTH.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜