visual studio - Omita automáticamente las funciones STL durante la depuración paso a paso en MSVC++ 2010
visual-studio visual-studio-2010 (3)
Buena pregunta, el depurador constantemente saltando en todo es de hecho una gran desaceleración y distracción durante la depuración. Por suerte hay una solución:
abre tu editor de registro, navega hasta
HKLM/SOFTWARE/Microsoft/VisualStudio/10.0/NativeDE/StepOver
(agregue / Wow6432Node después de SOFTWARE si está en una máquina de 64 bits, esto me causó muchos dolores de cabeza en el pasado).
Agrega un nuevo valor de cadena (REG_SZ). El nombre no es tan importante, usé NoSTL para mayor claridad y establecí su valor en
std/:/:.*=NoStepInto
Esto le dice al depurador que no se pare en nada que coincida con esa expresión regular, por lo que omitirá cada función (nivel global y de clase) en el espacio de nombres estándar. Al utilizar StepInto
, puede agregar anulaciones 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 incluyen a menudo pero de los cuales conoce el resultado por cabeza.
Here hay una explicación más detallada, google en NoStepInto
para obtener más información dispersa.
A menudo sucede que depuro a través de un programa paso a paso. En general, siempre uso el botón "entrar en" para detenerme en cada línea de la sección que estoy depurando, y cuando creo que obtuve la línea actual, simplemente haga clic nuevamente.
Lo que realmente interrumpe este flujo de trabajo, sin embargo, son las llamadas a la biblioteca. Si hay algo como un cálculo de longitud de cadena o un almacenamiento de mapas o similar, el depurador saltará a algún archivo STL y continuará allí. Luego tengo que presionar "saltar" para volver al programa que estoy viendo.
Esto significa: Me interrumpe el documento en el que estoy realmente interesado, en primer lugar porque el código desaparece repentinamente y se muestra la fuente de STL, y en segundo lugar porque tengo que mirar la barra de botones y mover el mouse, y cuando he saltado De vuelta, normalmente estoy algo confundido.
¿Hay alguna manera de evitar que el depurador abra archivos de origen STL? ¿Algún tipo de lista negra, o incluso más elegante, alguna configuración en algún lugar? Hasta ahora he encontrado una configuración de "solo mi código", pero solo funciona con código administrado y trabajo con código nativo.
La respuesta es como se mencionó anteriormente, pero en caso de que use VisualStudio 2017 o no le haya funcionado, intente lo siguiente:
C: / Archivos de programa (x86) / Microsoft Visual Studio / 2017 / Community / Common7 / Packages / Debugger / Visualizers
Abra el siguiente archivo con el bloc de notas o lo que tenga:
default.natjmc
y agregue esta línea: <Function><Name>std/:/:.*</Name><Action>NoStepInto</Action></Function>
El ''nombre'' significa el valor de la clave de registro en ese archivo y '' La acción es autoexplicativa.
Si también desea agregar la clave de registro (no está seguro si es necesario), entonces la encontrará aquí: /HKEY_LOCAL_MACHINE/SOFTWARE/WOW6432Node/Microsoft/VSTA/8.0/NativeDE/StepOver
Al menos, esa era la ruta en mi caso. Tomó 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.
No usas F10 / F11 / Shift + F11 ??? Esos son "paso a paso", "paso a paso", "paso a paso", y hay muchos más que son útiles. Es mucho más útil que buscar botones, y nunca tendrá que apartar la vista del código fuente.
En general, está bien informado con los métodos abreviados de teclado en Visual Studio en lugar del mouse. No solo para la depuración, sino para todo. ¡Apréndelos, te encantarán! Probablemente no pueda aprenderlos todos a la vez, solo elija algunas de las funciones que usa con frecuencia, familiarícese con ellas y comience con un conjunto diferente. Con el tiempo se convierte en una segunda naturaleza.
Lamento que esto no sea un tema importante, pero su pregunta original ya estaba muy bien contestada por el póster anterior, y pensé que podría ayudar en otra cosa :)