在Xcode中,如何进入lambda函数?

时间:2016-06-24 08:32:51

标签: xcode lambda

在调试时,在函数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 ""

我试过这个,它有效,但你永远不想再调试。

1 个答案:

答案 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