2010-04-04 8 views
6

No sé por qué estoy teniendo tantos problemas para comer the documentation for the elisp debugger.depurador de emacs: ¿cómo puedo un step-out, step-over?

Veo que tiene un comando para "entrar" (d). Pero por mi vida, no puedo ver un paso adelante o un paso adelante.

¿Alguien puede ayudar?

Si tengo esto en el Backtrace búfer:

... ¿Dónde pongo el cursor y la tecla que puedo escribir, al salir de la fn de análisis de estado() ? con eso quiero decir, correr hasta que vuelva fn, y luego detenerme en el depurador nuevamente.

Respuesta

1

'c' y 'j' funcionan algo así como un step-out y un paso adelante. Cuando se encuentra un marco marcado (indicado por "*") (los documentos dicen "salido" pero no parece ser así como se comporta el depurador), se volverá a ingresar el depurador. Cuando el marco superior está marcado, funcionan como un paso atrás; cuando no lo es, funcionan como un paso hacia afuera.

En su rastreado de ejemplo, al escribir se saldrá de line-beginning-position en c-parse-state. La bandera del recuadro debería desaparecer, por lo que escribir una segunda vez debe salir de c-parse-state.

4

Al depurar, presiono ? y veo:

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

creo o (es step-out) y f (como pasar por encima) son lo que estás buscando, aunque también encuentro h extremadamente útil.

+0

Sé que vas a encontrar esto difícil de creer, pero estaba usando depuración, no edebug. ¡Que diferencia! gracias por el consejo. – Cheeso

+0

@ Cheeso, ¡ja! Ni siquiera sabía que había una 'depuración M-x' hasta su pregunta. –

+0

Estabas mejor sin saber. la depuración es imposible de usar. – Cheeso

0

Hm. Yo, por ejemplo, prefiero debug a edebug, pero para gustos ...

En cuanto a debug, utilizo d, c, e y q.

Si utiliza debug, una cosa a tener en cuenta, que puede ahorrar tiempo y esfuerzo, es que cuando vea una llamada a la macro (comienza con #) puede simplemente presionar c para expandir la macro - hay normalmente no tiene sentido cavar en el código de expansión macro (a menos que haya escrito la macro y esté intentando depurarla).

En particular, para dolist, hay dos niveles de macroexpansion para saltar sobre el uso de c: una para dolist y uno para block.

HTH.

Cuestiones relacionadas