2009-03-09 10 views

Respuesta

19

Encontré este blog entry que tiene una solución. Aunque preferiría poder decir "no pise algo que no sea parte de este proyecto", parece factible.

EDIT: Después de mirar en algunos blogs y grupos de noticias, el método consiste en añadir una entrada para cada función que no quiere entrar en virtud de esta clave de registro (suponiendo VS 2005):

 
32 bit Windows 
    \\HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\NativeDE\StepOver 
64 bit Windows 
    \\HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\8.0\NativeDE\StepOver 

números de versión para el camino:

 
Visual Studio 2005: 8.0 
Visual Studio 2008: 9.0 
Visual Studio 2010: 10.0 
Visual Studio 2012: 11.0 
Visual Studio 2013: 12.0 

Esta clave contiene un conjunto de reglas que afectan a cómo se lleva a cabo paso a paso. Cada regla se especifica como una entrada separada cuyo nombre es un número decimal y cuyo valor es un patrón de nombre de función que especifica a qué funciones queremos afectar. p.ej.

 
    "10" = "boost\:\:scoped_ptr.*\:\:.*=NoStepInto" 

previene entrar en las funciones boost :: scoped_ptr.

Las reglas se evalúan de valores altos a bajos hasta que se encuentra un patrón coincidente o no quedan reglas. En ese caso, la función entra en escena.

Los nombres de las funciones son expresiones regulares.

Los puntos deben indicarse con una barra diagonal inversa.

Puede especificar StepInto así como NoStepInto. Esto le brinda una manera de evitar entrar en todas las funciones menos en el mismo ámbito/espacio de nombres.

Reinicie Visual Studio para recoger los cambios en el registro.

+3

Aunque Visual Studio 2012, 2013, están registrados en los datos anteriores, el registro no se usa más. Siga el enlace de entrada de blog para obtener detalles sobre cómo actualizar default.natstepfilter. –

+0

Creo que el registro se usa en VS 2012 y 2013 cuando habilitas Editar y Continuar. –

4

Mi copia-pasado:

Evitar Entrando en cosas

A menudo es útil para evitar pisar en un código común, como constructores o operadores sobrecargados. autoexp.dat proporciona esta capacidad. Agregue una sección llamada "[ExecutionControl]". Agregar 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 primer conjunto de dos puntos para un espacio de nombres o clase .

autoexp.dat solo se lee en Visual Puesta en marcha del estudio.

de ignorar el myfunctionname función, y todas las llamadas a la clase CFOO:

[ExecutionControl]

myfunctionname = NoStepInto

CFOO :: * = NoStepInto

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

[ExecutionControl]

CString :: CString = NoStepInto

CString :: operator == NoStepInto

para ignorar todas las llamadas de ATL:

[ExecutionControl]

ATL: : * = NoStepInto

de t su (http://www.highprogrammer.com/alan/windev/visualstudio.html) artículo.

También puede usar "Paso a la función específica" del menú pupup.

Editar Lo sentimos, parece que autoexp.dat no funciona en vs 2003/2005. Lo mismo que puede hacer con la configuración de registro. http://groups.google.com/group/microsoft.public.vsnet.debugging/browse_thread/thread/b03dee5a626470c0/26addb1b539883e8

+0

Parece que el AUTOEXP.El archivo DAT solo se admite en Visual Studio 6. Las versiones más recientes usan entradas de registro. – Ferruccio

+0

Gracias. Edité mi publicación. – bayda

2

VS6 se utiliza para permitirle definir valores en el archivo de autoexp que le permiten omitir entrar en funciones comunes (por ejemplo, constructores de cadenas). A partir de VS7, estas exclusiones se trasladaron al registro. La facilidad de uso toma un golpe serio.

En VS7 y superior Microsoft, en su sabiduría, movió estas exclusiones al registro. Aquí hay algunos ejemplos:

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\NativeDE\StepOver] 
"10"="CString\\:\\:CString=NoStepInto" 
"11"=".*\\.c_str.*=NoStepInto" 

Los nombres clave representan la orden de búsqueda. Los valores clave contienen expresiones regulares VS para buscar.

Si crea sus propias exclusiones, asegúrese de obtener el nombre de la vista de desensamblaje. La declaración en el origen puede no coincidir con el nombre generado del compilador, especialmente para las funciones con plantilla.

4

También existe la entrada "paso a específico" en el menú contextual, que enumerará las funciones que se podrían entrar en la línea actual, y puede elegir la que desee.

+0

Gracias. Nunca me di cuenta de eso. – Ferruccio

4

Desde Visual Studio 2012, echar un vistazo al siguiente archivo:

C:\Program Files[ (x86)]\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers\default.natstepfilter

Cuestiones relacionadas