[英]lldb fails when setting condition
我用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
我正在使用莫哈韋沙漠
~ lldb --version
lldb-1001.0.13.3
Swift-5.0
為什么設置-c
失敗,而忽略卻沒有失敗?
那是b
命令中的錯誤。 b
命令不是“真正的” lldb斷點設置命令-即break set
。 b
是一個基於lldb“ regex”的命令,該命令嘗試模擬gdb斷點解析器-然后分派到break set
。 添加它是為了使來自gdb的人使用lldb的時間更短。 但是顯然,它不能正確處理-c標志。 按照您的指定設置斷點后,您將看到:
(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
認為您正在嘗試使用整個字符串設置“功能名稱”斷點。 請將此文件提交到http://bugs.llvm.org 。
您可以使用以下break set
來設置要設置的斷點:
(lldb) br s -f Board.cpp -l 27 -c 'prob==0.1'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.