我使用clang++ -std=c++17 -g try.cpp
编译了文件
现在在lldb上,
(lldb) b Board.cpp:27
Breakpoint 1: where = a.out`Board::move(Point const&, Point const&, std::__1::vector<std::__1::vector<float, std::__1::allocator<float> >, std::__1::allocator<std::__1::vector<float, std::__1::allocator<float> > > > const&, int, float) + 40 at Board.cpp:27:28, address = 0x0000000100001558
(lldb) b Board.cpp:27 -c 'prob==0.1'
Breakpoint 2: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations
我正在使用Mojave,
~ lldb --version
lldb-1001.0.13.3
Swift-5.0
为什么设置-c
失败,却没有失败?
答案 0 :(得分:2)
这是IEnumerable<TInner>
命令中的错误。 inner
命令不是真正的lldb断点设置命令,而是b
。 b
是基于lldb“ regex”的命令,它试图模拟gdb断点解析器-然后分派给break set
。添加它是为了使来自gdb的人使用lldb的时间更短。但是显然,它不能正确处理-c标志。按照您的指定设置断点后,您将看到:
b
因此break set
认为您正在尝试使用整个字符串设置“函数名”断点。请用http://bugs.llvm.org提交。
您可以使用(lldb) b Board.cpp:27 -c 'prob==0.1'
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
(lldb) break list
Current breakpoints:
1: name = 'Board.cpp:27 -c prob==0.1', locations = 0 (pending)
来设置要设置的断点,例如:
b