Escribí helpmientras estaba en el GDB pero no encontré nada sobre entrar, salir y salir. Puse un punto de interrupción en un programa de Asamblea en _start( break _start). Luego escribí nexty terminó la depuración. Supongo que fue porque terminó _starty no intervino como quería.
¿Alguien que pueda ayudar?
debugging
programming
gdb
Pichi Wuana
fuente
fuente

Respuestas:
help runningproporciona algunas pistas:Hay
stepenextinstrucciones (y tambiénnextiystepi).Así podemos ver que los
steppasos a subrutinas, peronexta un paso más de subrutinas.El
stepystepi(y elnextynexti) se distinguen por incrementos de "línea" o "instrucción".Relacionado es
finish:Hay mucha más información útil en https://sourceware.org/gdb/onlinedocs/gdb/Continuing-and-Stepping.html
fuente
for(i=0;i<10;i++) { printf("%d\n",i); }es una línea de origen pero múltiples instrucciones.finishcomando completará el marco de la pila actual, que normalmente completará la subrutina actual y volverá a la persona que llama.Vine aquí porque tenía la misma pregunta. Eventualmente, pensé que para mi propósito, en cualquier momento en que pudiera usar algo como "salir" de un bucle, simplemente puedo establecer otro punto de interrupción después del bucle y luego dejar que el programa
continuetermine el bucle y luego se ejecute en el punto de interrupción. Lo siento si eso es obvio para la mayoría de las personas, pero probablemente sea útil para alguien que busque una respuesta a esta pregunta.fuente