2012-09-23 8 views
15

Me he encontrado con varias publicaciones/blogs que muestran cómo deshabilitar entrar en funciones específicas y/o espacios de nombres (por ejemplo, las bibliotecas de impulso) usando entradas de registro.¿Ha cambiado el formato de la entrada de registro VS2012 NativeDE StepOver que impide el paso a las funciones específicas?

Cuando traté de hacer esto con VS2012, no obtuve los resultados esperados.

Probé ...

Windows Registry Editor Version 5.00 

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\NativeDE\StepOver] 
"10"="std\:\:.*" 
"20"="boost\:\:.*" 

ha cambiado el formato? ¿Tengo la entrada de registro correcta?

Respuesta

28

fin he encontrado una "solución":

Añadir un nuevo .natstepfilter a C: \ Archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Packages \ \ depurador visualizadores

<?xml version="1.0" encoding="utf-8"?> 
<StepFilter xmlns="http://schemas.microsoft.com/vstudio/debugger/natstepfilter/2010"> 
    <Function><Name>boost::.*</Name><Action>NoStepInto</Action></Function> 
    <Function><Name>std::.*</Name><Action>NoStepInto</Action></Function> 
</StepFilter> 

No estoy seguro de que el formato "boost ::. *" Sea correcto en este ejemplo específico, pero debería ser esto o algo similar. Puede ver los otros archivos .natstepfilter en la carpeta para obtener más pistas.

Desafortunadamente, según una publicación que encontré, hacer esto no funciona al depurar aplicaciones en modo mixto (por ejemplo, C++/C#), que es lo que estoy haciendo. Dejaré esta pregunta para otras personas que intenten descubrir cómo implementar esta funcionalidad y para cualquiera que conozca una manera de hacerlo en modo mixto.

+1

.natstepfilter puede ser también colocado en directorios de perfil de usuario - el mismo que .natvis (ver este artículo http://code.msdn.microsoft.com/windowsdesktop/Writing- type-visualizers-2eae77a2 # content) - da alguna explicación – Serge

+0

debe marcar esto como la respuesta, ya que esta es definitivamente la nueva forma en que VS maneja StepOver – stijn

+1

Esto también funciona para VS2015. –

4

Como una adición a la respuesta anterior (lamentablemente no puedo comentar todavía), ya hay un archivo llamado default.natstepfilter en ese directorio, puede simplemente agregar las dos líneas allí (antes del </StepFilter>).

Es posible que deba hacer clic con el botón derecho en default.natstepfilter y vaya a Properties y desmarque Read-Only para cambiar este archivo. Necesitará derechos de administrador para esto.

Ejemplo:

<?xml version="1.0" encoding="utf-8"?> 
<StepFilter xmlns="http://schemas.microsoft.com/vstudio/debugger/natstepfilter/2010"> 
    <Function><Name>std::.*</Name><Action>NoStepInto</Action></Function> 
    <Function><Name>__security_check_cookie</Name><Action>NoStepInto</Action></Function> 
    <Function><Name>__abi_winrt_.*</Name><Action>NoStepInto</Action></Function> 
    ... 
</StepFilter> 
Cuestiones relacionadas