6

我正在调试大量使用 STL 的应用程序,为了不整天在键盘上敲击 Shift-F11,我有一个 my.natstepfilter 文件C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers包含

<?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>
</StepFilter>

据我所知,这是让 VS2012 不进入任何以 开头的函数的方法std::,如果我错了,请纠正我。

然而,这没有任何影响,调试器只是跳转到所有内容。此外,当使用过滤器运行 procmonVisualizers并启动调试会话时,它看起来像这样:

在此处输入图像描述

因此它会查询正确目录中的所有内容,然后继续读取所有 .natvis 文件,但不读取 .natstepfilter 文件。所以看起来 VS 正在积极地做一些事情来完全忽略过滤器。

有关如何解决此问题或在哪里进一步寻找解决方案的任何想法?

附加信息:我加载了一大堆扩展,但它们似乎与调试器没有任何关系(更不用说他们会告诉 VS 跳过过滤器文件)。只是为了确保在我读到过滤器不适用于混合模式时Debugger Type明确设置为。Native Only被调试的应用程序只是本机的。尝试调试 x86 和 x64 进程。

4

1 回答 1

0

natstepfilter 文件仅在第一次尝试 StepInto 后才被加载(解析)。Visual C++ 2012 中引入的调试器中的新数据查看增强功能(natvis 和 natstepfilter)在为本机代码打开 EDIT AND CONTINUE(工具->选项->调试->EditAndContinue)时不起作用。

于 2014-04-09T06:34:19.250 回答