簡體   English   中英

設置條件時lldb失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM