Нет отладочной информации / исходного кода с LLDB на OSX - PullRequest
0 голосов
/ 21 июня 2019

Я не могу увидеть исходный код в lldb, несмотря на попытку LLDB не показывает исходный код

Я сводил это к простой программе на C ++ 17, которая компилируется с помощью следующей команды. Я работаю на OSX с clang 7.0.1, который я скомпилировал из исходного кода, но мой lldb - это XCode-установленный (это может быть проблемой?).

Вот моя команда компиляции:

clang++ -std=c++17 -march=native -Wall -g -O0  main.cpp -o main

Обратите внимание, что main / main.dSYM / Contents / Resources / DWARF создается при компиляции, и это выглядит нормально.

Одна очевидная проблема заключается в том, что отладочная информация отсутствует в двоичном файле и объектный файл вообще не может быть найден:

$ dsymutil main
warning: (x86_64) /var/folders/c1/vxvr6h9x10b8dbsxhh6nx05h0000gn/T/main-43ca25.o unable to open object file: No such file or directory
warning: no debug symbols in executable (-arch x86_64)

У меня сложилось впечатление, что я могу просто скомпилировать с отладочной информацией (через -g) и сделать так, чтобы все "просто работало", но это явно не так.

Как заставить работать символы отладки, чтобы я мог использовать lldb?

1 Ответ

0 голосов
/ 25 июня 2019

Мне удалось решить эту проблему, удалив флаг компоновщика -flto, который я не осознавал. По-видимому, когда LTO включен, символы отладки не работают.

...