2010-01-05 12 views
10

Esto es definitivamente obsesivo, pero estoy fascinado por la forma inteligente en que el compilador traduce el código C en las instrucciones de la máquina. Como estoy un poco confuso con algunas instrucciones, sería útil si pudiera ver el funcionamiento de un programa compilado en el nivel de las instrucciones individuales de la máquina: "debajo" del nivel de una instrucción C (que podría generar varias instrucciones de la CPU). En otras palabras, ¿puedo ver los registros/memoria cambiar después de una sola instrucción de máquina?Xcode Debugger: cómo hacer un solo paso al nivel de las instrucciones de la CPU

Estoy seguro de que es posible con algunos otros depuradores, pero solo estoy usando Xcode.

+1

GDB sin duda puede hacerlo, y Xcode depurador GDB es una interfaz, por lo que la pregunta es si tiene cualquier interfaz de usuario para llamar a ese comando gdb. –

+0

Gracias, y la respuesta es 'sí' - Ingrese a la opción – gary

Respuesta

3

si es "Instrucción Paso", y es ni "siguiente instrucción" . Tienen la misma semántica que "paso" y "siguiente" para líneas de código, solo en el nivel de instrucción.

+0

Eso suena como gdb. ¿Puedo hacer eso desde XCode? – gary

+0

shift-cmd-R muestra la ventana de la consola, donde (una vez que se rompe) se obtiene un mensaje estándar de GDB. Además, parece que el menú Ejecutar tiene un elemento "Paso a la instrucción" (opt-shift-cmd-I) y una opción "Paso a paso" (opt-shift-cmd-O). –

+0

que es una "I" mayúscula (como en "Indigo"), no una "L" minúscula. –

2

En la ventana del depurador, habilite el ensamblaje: Pantalla de ejecución/Depurador/Fuente y desensamblaje. Espera a llegar a un punto de interrupción. Luego use Run/Step en (over) instruction para avanzar en el ensamblaje.

+0

Gracias - Tuve el 'Paso', pero pasé por alto la tecla OPCIÓN para los pasos a nivel de máquina – gary

0

Lamentablemente, no verificó suficientemente cerca - Paso a paso w/Opción (Cmd + Opt-shift-I = ⌘⌥⇧I)

8

Es posible usar los pasos de Xcode, paso a paso y paso a paso con el depurador. El truco consiste en mantener presionada la tecla ctrl(Control) mientras pasa el mouse sobre los iconos del paso del depurador para cambiar el contexto. Debajo de cada icono de paso, la línea cambiará a un punto y luego podrá avanzar al nivel de instrucción.

Vea la captura de pantalla adjunta resaltada con un óvalo rojo.

screenshot

Cuestiones relacionadas