Lo que necesita es un conditional breakpoint
... ver este URL para más detalles:
http://msdn.microsoft.com/en-us/library/7sye83ce%28v=VS.90%29.aspx
La idea es que usted sabe lo que son verdaderas condiciones para el punto de corte para convertirse en válido, entonces cuando esas condiciones son verdaderas se disparará el punto de interrupción, pausando la ejecución. A continuación, puede venir por la mañana y comenzar a recorrer el código.
Si tiene DO tiene un punto exacto que desea causar un descanso en el que puede poner en un punto de corte programático DebugBreak() que provocará una excepción de punto de interrupción. El depurador de Visual Studio lo detectará y pausará la ejecución en ese punto.
Alternativamente, habilite gflags
ejecute el programa con ADPlus
y en el punto del código que cree que ha causado el problema, ejecute una excepción que no se maneja. Deje que el programa falle y ADPlus generará un volcado completo de la memoria de proceso. El hecho de que haya activado gflags significa que obtendrá asignaciones de memoria con bordes agradables a su alrededor (0xCDCDCDCD
por lo general) para una fácil depuración.
Por último, también puede usar el DbgHelp.dll
library de Microsoft para generar un mini volcado que puede capturar varios niveles de información mediante programación (sin un bloqueo como lo implica la solución anterior). La función que desea es MiniDumpWriteDump. Puede escribir un mini-volcado normal o un volcado total de memoria usando los parámetros. Esto debería hacerse desde un proceso separado si es posible (puede esperar el control en su propio proceso).
Espero que haya oído hablar de [Prueba unitaria] (http://en.wikipedia.org/wiki/Unit_testing)? – Xeo
por supuesto. lidiar con casos de prueba autoimpuestos para probar la funcionalidad y 1.8 gigas de datos en vivo son dos bestias separadas – basil