LLDB эквивалент команды gdb "directory" для указания исходного пути поиска?
Ищете lldb-эквивалент команды gdb "directory", чтобы добавить пути поиска для поиска отсутствующего исходного кода (или, возможно, аналогичные функции в xcode)?
Заранее спасибо!
1 ответ
target.source-map
настройка позволяет определить серию a => b
переназначения пути в сеансе отладки. Она не идентична команде gdb dir, которая представляет собой список каталогов для поиска исходных файлов по базовому имени, но вы можете решить те же проблемы с source-map
, Вот пример, где я перемещаю исходный файл в скрытый каталог после компиляции:
% cd /tmp
% echo 'int main () { }' > a.c
% clang -g a.c
% mkdir hide
% mv a.c hide/
% xcrun lldb a.out
(lldb) settings set target.source-map /tmp /tmp/hide
(lldb) l -f a.c
1 int main () { }
(lldb) br se -n main
Breakpoint created: 1: name = 'main', locations = 1
(lldb) r
Process 21674 launched: '/private/tmp/a.out' (x86_64)
Process 21674 stopped
* thread #1: tid = 0x1f03, 0x0000000100000f49 a.out`main + 9 at a.c:1, stop reason = breakpoint 1.1
#0: 0x0000000100000f49 a.out`main + 9 at a.c:1
-> 1 int main () { }
(lldb)
Для получения дополнительной информации об этом параметре введите set list target.source-map
в лдб. fwiw вы, возможно, обнаружили это в lldb, выполнив apropos path
который перечислит все команды / настройки, которые имеют путь слова в имени / описании. Видя, что есть настройка с этим именем, вы бы сделали settings list
чтобы увидеть список настроек и выяснить, что он подан в target.
,
Проблема с lldb
невозможность найти ваши исходные файлы может быть вызвана некорректным процессом компиляции - я просто потратил несколько часов, пытаясь найти lldb
команда, чтобы установить путь к источникам принудительно, но в итоге обнаружила, что я выполнил как фактическую компиляцию, так и связывание с идентичным набором флагов (-Wall -Werror -Wextra -g
) в моем Makefile
... Таким образом, компилятор работал без предупреждений и сообщений об ошибках, несмотря на то, что ошибки (или предупреждения, рассматриваемые как ошибки) действительно существовали. Исправление их исправленоlldb
рабочий процесс. Возможно, разработчикам стоит подумать о добавлении предупреждения (для новичков вроде меня) на случай, если программа не смогла найти источники (они были расположены в том же каталоге вsrc
папка).