lldb терпит неудачу при установке условия - PullRequest
1 голос
/ 27 июня 2019

Я скомпилировал свой файл с помощью 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, а пропуск ее сделалнет?

1 Ответ

2 голосов
/ 27 июня 2019

Это ошибка в команде 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'
...