c++ visual-studio visual-studio-2008 debugging

c++ - ¿Cómo saltarse las clases comunes en VS 2008 al intervenir?



visual-studio visual-studio-2008 (2)

¿Cómo puedo omitir las clases comunes en el depurador VS 2008 al intervenir?

Por ejemplo, no quiero que el depurador ingrese en ninguna de las clases std ::. ¿Cómo puedo lograr eso?

He encontrado formas de hacerlo en VS 2005 y anteriores, pero no en 2008


Puede hacerlo ingresando entradas en el registro (lo sé, apesta). La clave que está buscando varía de sistemas de 32 a 64 bits. Para sistemas de 32 bits, la clave es

HKEY_LOCAL_MACHINE/Software/Microsoft/VisualStudio/9.0/NativeDE/StepOver

Si está ejecutando un sistema operativo de 64 bits y un Visual Studio de 32 bits, la clave es

HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/VisualStudio/9.0/NativeDE/StepOver

La clave Wow6432Node es una clave presente para aplicaciones de 32 bits que se ejecutan en sistemas de 64 bits . (Nota: la búsqueda en el registro de "_RTC_CheckEsp" probablemente lo llevará al lugar correcto, es una entrada predeterminada en Visual Studio 9)

La sintaxis debería serle familiar, pero como ejemplo, una entrada simple podría ser un valor de cadena boost::.*=NoStepInto que evitará que el depurador boost::.*=NoStepInto a Boost. Consulte http://www.cprogramming.com/debugging/visual-studio-msvc-debugging-NoStepInto.html para ver otros ejemplos.

Espero que esto ayude :)


Tomado de http://www.highprogrammer.com/alan/windev/visualstudio.html :

Evitando entrar en las cosas

A menudo es útil evitar entrar en algún código común como constructores u operadores sobrecargados. autoexp.dat proporciona esta capacidad. Agregue una sección llamada "[ExecutionControl]". Agregue claves donde la clave es el nombre de la función y el valor es "NoStepInto". Puede especificar un asterisco (*) como un comodín como el primer conjunto de dos puntos para un espacio de nombres o clase.

autoexp.dat solo se lee en el inicio de Visual Studio.

Para ignorar la función myfunctionname, y todas las llamadas a la clase CFoo:

[ExecutionControl] myfunctionname=NoStepInto CFoo::*=NoStepInto

Para ignorar la construcción y la asignación de CStrings de MFC: (Observe el extra = en CString :: operator =.)

[ExecutionControl] CString::CString=NoStepInto CString::operator==NoStepInto

Para ignorar todas las llamadas ATL:

[ExecutionControl] ATL::*=NoStepInto