Visual Studio 2015 - 防止调试器单步执行STL代码(特别是std :: function)但仍然进入stl调用的任何用户代码

时间:2016-05-26 02:19:11

标签: c++ visual-studio visual-studio-2015 visual-studio-debugging

我正在尝试调试std :: function-heavy代码而不是噩梦。我想要发生的是在这个例子中能够直接进入lambda体:

std::function<void(void)> lam_dostuff = []() {
    printf("stuff has been done\n");
};

lam_dostuff();

我做了一些研究,发现C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers\default.natstepfilter文件包含步入式覆盖。我可以添加规则<Function><Name>std::.*</Name><Action>NoStepInto</Action></Function>,这确实阻止我进入任何stl代码,但它也阻止了步入由于stl调用而调用的用户代码。我尝试添加规则<Function><Name>std::_Invoker_functor::_Call.*</Name><Action>StepInto</Action></Function>,这是std :: function调用的最后一步的签名,但没有用。

我能做些什么来获得我想要的结果吗?

0 个答案:

没有答案