在调试时,在函数call(mFunction(1))
上有一个断点,我按step into
,但是调试器没有进入lambda函数。
#include <iostream>
int main(int argc, const char * argv[]) {
std::function<void(int)> mFunction;
mFunction = [](int a ){
a = 2;
};
mFunction(1); //breakpoint at this line
return 0;
}
解决方案1:
(lldb)settings set target.process.thread.step-avoid-regexp ""
我试过这个,它有效,但你永远不想再调试。
答案 0 :(得分:0)
据我所知您的解决方案是正确的。完成后,您可以将正则表达式改回其原始值,以使其余的调试更加令人满意。例如:
(lldb) settings show target.process.thread.step-avoid-regexp
target.process.thread.step-avoid-regexp (regex) = ^std::
(lldb) settings set target.process.thread.step-avoid-regexp ""
... debug ...
(lldb) settings set target.process.thread.step-avoid-regexp "^std::"
来源:https://gist.github.com/hotwatermorning/1c13149705ccf6d3233a043012d0d164