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 папка).

Другие вопросы по тегам