2011-03-17 13 views
16

A menudo sucede que depuro a través de un programa paso a paso. Generalmente, siempre utilizo el botón "entrar" para parar en cada línea de la sección que estoy depurando, y cuando creo que obtuve la línea actual, simplemente haga clic de nuevo.Salteo automático de funciones de STL durante la depuración paso a paso en MSVC++ 2010

Lo que realmente está interrumpiendo este flujo de trabajo, sin embargo, son las llamadas a la biblioteca. Si hay algo así como un cálculo de longitud de cadena o un almacenamiento de mapa o similar, el depurador saltará a algún archivo STL y continuará allí. Luego tengo que presionar "saltar" para saltar al programa que estoy viendo.

Esto significa: me interrumpe el documento que realmente me interesa, en primer lugar porque el código desaparece de repente y se muestra la fuente STL, y en segundo lugar porque tengo que mirar la barra de botones y mover el mouse, y cuando he retrocedido, generalmente estoy algo confundido.

¿Hay alguna manera de evitar que el depurador abra archivos fuente STL? ¿Algún tipo de lista negra, o tal vez incluso más elegante, algún escenario en algún lugar? Hasta ahora he encontrado una configuración de "solo mi código", pero solo funciona para código administrado y trabajo con código nativo.

+0

posible duplicado de [¿Cómo omitir las clases comunes en VS 2008 al intervenir?] (Http://stackoverflow.com/questions/2062881/how-to-skip-common-classes-in-vs-2008- when-stepping-in) – Suma

Respuesta

12

buena pregunta, el depurador saltando constantemente en todo es de hecho una gran ralentización y distracción durante la depuración. Por suerte hay una solución:

abrir el editor del registro, vaya a

HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\StepOver 

(añadir \ SOFTWARE Wow6432Node después, si estás en una máquina de 64 bits, esto me casued dolores de cabeza en el pasado).

Agregue un nuevo valor de cadena (REG_SZ). El nombre no es tan importante, solía NoSTL para mayor claridad y establecer su valor a

std\:\:.*=NoStepInto 

Esto le dice al depurador que se pare en cualquier cosa que coincide con la expresión regular por lo que saltará cada función (nivel global y clase) en el espacio de nombres estándar. Al usar StepInto puede agregar modificaciones para métodos específicos, y aún puede usar puntos de interrupción fuera de curso. También es útil agregar algunos de sus propios métodos que se ingresan a menudo pero de los cuales se conoce el resultado por cabeza.

Here es una explicación más detallada, google en NoStepInto para obtener más información dispersa.

-1

Usted no usa F10/F11/Shift + F11 ??? Esas son "paso adelante", "paso hacia adentro", "salir", y hay muchas más que son útiles. Es mucho más útil que buscar botones, y nunca tienes que quitar la vista del código fuente.

En general, está bien servido mediante el uso de métodos abreviados de teclado en Visual Studio en lugar del mouse. No solo para la depuración, sino para todo. ¡Aprendelas, las amarás! Probablemente no pueda aprenderlos todos a la vez, solo elija algunas funciones que use con frecuencia, acostúmbrese a ellas y luego comience con un conjunto diferente. Se convierte en una segunda naturaleza a través del tiempo.

sentimos que esto es fuera de tema, pero su pregunta original era muy bien contestada por el comentario anterior ya, y pensé que la ayudaría con algo más :)

1

La respuesta es como se ha mencionado, pero en caso de que utilice VisualStudio 2017 o no funcionó para usted, a continuación, intente lo siguiente:

C: \ Archivos de programa (x86) \ Microsoft Studio \ 2017 \ Comunidad \ Common7 \ Packages \ Visual depurador \ visualizadores

Abra el siguiente archivo con el bloc de notas o lo que sea que tenga:

default.natjmc

y añadir esta línea: <Function><Name>std\:\:.*</Name><Action>NoStepInto</Action></Function> El 'nombre': el valor de la clave de registro en ese archivo y 'acción' es auto-explicativo.

Si desea agregar la clave de registro también, (no estoy seguro si es necesario), a continuación, encontrará aquí: \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VSTA\8.0\NativeDE\StepOver Al menos, ese era el camino en mi caso. Llevó una buena hora encontrarlos, así que espero que ayude a alguien. Elimine el 'Wow6432Node' si tiene una máquina de 32 bits, como se mencionó anteriormente.

+0

Lo hice de nuevo cuando reinstalé mi pc. La ubicación seguía siendo la carpeta Paquete \ Visualización. La clave de registro no fue necesaria para mí. Pero tuve que agregar esta línea en el archivo: 'default.natstepfilter' esta vez, en lugar del archivo' default.natjmc'. Simplemente dicho, agréguelo al archivo que tiene el mismo formato que la línea que publiqué arriba. Para mayor claridad, este formato: ' std \: \:. * NoStepInto' – CorpseDead

Cuestiones relacionadas