c++ - ingles - cómo se dice en inglés
¿Cómo depurar el código que usa boost sin perder cordura? (2)
No hay una plataforma / compilador independiente, pero me han dicho que puedes decirle al depurador que no "entre" en ciertas funciones o clases. Debería buscar la clave del registro: [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/8.0/NativeDE/StepOver]
y crear un valor de cadena llamado como un número en el orden en que se deberían aplicar las reglas (también estoy un poco confundido). pero supongo que las reglas se ordenan simplemente en la forma (posiblemente inversa) en que deberían aplicarse) y se establece en algo así como: "boost ::. * = NoStepInto". P.ej:
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/8.0/NativeDE/StepOver]
"10"="boost/:/:.*=NoStepInto"
Puedes leer un poco más aquí .
Boost es un gran conjunto de bibliotecas y realmente aumenta la productividad. Pero el código de depuración que lo usa es una pesadilla total. Claro, recorrer veinte mil archivos de cabecera puede ser un valioso ejercicio intelectual, pero ¿qué pasa si necesitas hacerlo una y otra vez?
¿Hay alguna manera de evitar el desarrollo de la parte de impulso y hacer que el depurador vaya directamente a mi código?
Visual Studio tiene un DebuggerStepThroughAttribute para .NET framework. ¿Hay algo similar para C ++ nativo?
Puede omitir el espacio de nombre de impulso por completo mediante el uso de las técnicas que se describen aquí . Solo usa algo como:
boost/:/:.*=NoStepInto
... en la entrada de registro relevante.
Sin embargo, si su código recibe una llamada desde un impulso (por ejemplo, a través de una boost::function
o similar), ¡su código será omitido también! Me interesará si alguien puede encontrar una buena solución para ese problema ...