Согласно официальному руководству lldb, возможность просмотра исходного кода во время сеанса отладки (с использованием команды source list
) выполняется путем установки нового пути для исходных файлов.LLDB - установочный код исходного кода
i.e, если я скомпилировал свой проект в/tmp на одном компьютере и развернул его на другом компьютере, где исходный код находится в/Users/Src /, я должен ввести settings set target.source-map /tmp /Users/Src
из запуска lldb на машине развертывания.
Однако, что произойдет, если я получил исполняемый файл от кого-то еще и не знаю каталог сборки. и, возможно, исходный код организован иначе, чем был построен (но содержимое файла одинаков).
мои вопросы:
ли lldb знать, как искать соответствующий исходный файл рекурсивно в подаваемом пути?
Как я могу получить исходную форму пути для исполняемого файла mach-o?
вот формальное описание команды:
источник Переоформления файлов для пути доступа сеанса отладки. Если ваши исходные файлы больше не находятся в том же месте, что и при создании программы, возможно, программа была построена на другом компьютере - вам нужно сообщить отладчику, как найти источники в их локальном пути к файлу пути к файлу системы сборки.
Я не знаком ни с lldb, ни с osx, но я предлагаю вам попробовать 'readelf -a' и' objdump -p', чтобы получить информацию о пути из вашего исполняемого файла. Но 'readelf' кажется недоступным в osx, http://stackoverflow.com/questions/3286675/readelf-like-tool-for-mac-os-x –
благодарит за комментарии. Однако исполняемая двоичная структура ORX отличается от ELF и называется MACH-O, но я попытаюсь найти синоним objdump. – Zohar81