调试时,在函数 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;
}
解决方案一:
(lldb)settings set target.process.thread.step-avoid-regexp ""
我已经试过了,它有效,但你再也不想调试了。
最佳答案
据我所知,您的解决方案是正确的。完成后,您可以将正则表达式更改回其原始值,以使其余的调试更加愉快。例如:
(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
关于xcode - 在 Xcode 中,如何进入 lambda 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38008958/