ver - Windbg: ¿Cómo establecer un punto de interrupción en una de las sobrecargas de una función de C++?
que es un punto de interrupcion en programacion (5)
Tratar:
bu 0xff3c6100
Si recuerdo bien, WinDbg también permite establecer puntos de corte por dirección.
Tengo dos sobrecargas de una función de c ++ y me gustaría establecer un punto de interrupción en uno de ellos:
0:000> bu myexe!displayerror
Matched: 00000000`ff3c6100 myexe!displayError (int, HRESULT, wchar_t *)
Matched: 00000000`ff3c60d0 myexe!displayError (int, HRESULT)
Ambiguous symbol error at ''myexe!displayerror''
Diablos, estaría bien establecer puntos de interrupción en todas las sobrecargas, pero no puedo entender cómo:
0:000> bu myexe!displayerror*
Matched: 00000000`ff3c6100 myexe!displayError (int, HRESULT, wchar_t *)
Matched: 00000000`ff3c60d0 myexe!displayError (int, HRESULT)
Ambiguous symbol error at ''myexe!displayerror*''
¿Has probado "bm myexe! Displayerror *"?
bm myexe!displayerror
Esto configurará los puntos de interrupción en todas las sobrecargas, en vez de usar bc
para borrar los que no quieres
bc 1-3
O simplemente deshabilítelos
bd 1-3
El problema con bm
es que los puntos de corte que produce a veces no se pueden evaluar y desencadenan un corte. Molesto a veces
bp @@ (MyClass :: MyMethod) métodos de interrupción (útil si el mismo método está sobrecargado y, por lo tanto, presente en varias direcciones)
Busca en tu dll todos los puntos de entrada que coincidan con tu símbolo
x myexe!displayerror
esto generará todos los símbolos que coincidan con la cadena de búsqueda y sus puntos de entrada, luego establecerá el punto de interrupción en la dirección
bp ff3c6100 // for myexe!displayError (int, HRESULT, wchar_t *)
Esto establecerá un punto de interrupción específico cuando se golpee esa dirección, o usted establece bp contra la otra dirección. Puede configurar el punto de interrupción para que solo presione una vez, borrar el punto de interrupción y salir
bp /1 ff3c6100
y también puede ejecutar comandos como volcar la pila de llamadas, variables y continuar:
bp ff3c6100 "kb;dv;g"
También puede simplemente abrir su código fuente cuando se conecta WinDbg, navegar hasta la línea de código en la que desea establecer el punto de interrupción y presionar F9 (lo mismo que haría con Visual Studio), se detendrá por un tiempo antes de establecer un punto de interrupción en esa línea, esto supone que tienes acceso al código fuente.