我正在尝试调试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调用的最后一步的签名,但没有用。
我能做些什么来获得我想要的结果吗?