visual tutorial temas tag studio para extensions extensiones español configurar code closing visual-studio debugging x86 assert debugbreak

visual studio - tutorial - ¿Cómo deshabilitar un punto de corte/afirmación programática?



visual studio code tutorial español pdf (2)

Puede intentar algo como esto:

#define ASSERT(x) {/ if (!(x)) / { / static bool ignore = false; / if (!ignore) / { / ignore = true; / __asm int 3 / } / }/ }

Esto debería golpear la depuración solo una vez. Incluso puede mostrar un cuadro de mensaje al usuario y preguntar qué hacer: continuar (no pasa nada), interrumpir (se llama int 3) o ignorar (ignorar se establece en verdadero, nunca se golpea de nuevo el punto de interrupción)

Estoy usando Visual Studio, desarrollando una aplicación nativa, tengo un punto de corte programático (assert) en mi código colocado usando __asm ​​int 3 o __debugbreak. A veces, cuando lo presiono, me gustaría deshabilitarlo para que los hits sucesivos en la misma sesión de depuración ya no entren en el depurador. ¿Cómo puedo hacer esto?


x86 / x64

Suponiendo que está escribiendo la aplicación x86 / x64, escriba lo siguiente en la ventana de su reloj:

x86: *(char *)eip,x

x64: *(char *)rip,x

Debería ver un valor 0xcc, que es código de operación para INT 3. Reemplácelo con 0x90, que es código de operación para NOP. También puede usar la ventana de memoria con eip como una dirección.

PPC

Suponiendo que está escribiendo una aplicación PPC (por ejemplo, Xbox 360), escriba lo siguiente en la ventana de su reloj:

*(int *)iar,x

Debería ver un valor 0xfeNNNNNN, que es opcode para trap (más a menudo 0x0fe00016 = trap incondicional). Reemplácelo con 0x60000000, que es opcode para NOP.