Встроенная отладка Qt 5.x — развернуть раздетый бинарный файл?

Я считаю (поправьте меня, если я ошибаюсь), что при удаленной отладке с gdb а также gdbserverдвоичный файл, запущенный на цели под gdbserver не нуждается в отладочной информации в двоичном файле, но хост, работающий gdb, делает.

Наш двоичный файл приложения с отладочными символами составляет около 112 мегабайт (!). Если я запускаю стриптиз, бинарный файл будет всего 6,7 мегабайта, что намного быстрее развернет к нашей цели.

Возможно ли, чтобы Qt Creator удалил двоичный файл перед его развертыванием? Сможем ли мы все еще отлаживать?

8

Решение

Чтобы удалить символы, вы можете заставить Qt Creator выполнить последний шаг сборки после qmake и make, который вызывает команду strip в двоичном файле вашего пакета приложения. Например: —

strip -u -r ./MyApplication/Contents/MacOS/MyApplication

Для отладки вам понадобится отдельный файл .dsym генерироваться во время сборки, которая содержит символы. Если это находится на хосте, отладчик должен автоматически подобрать это; это происходит с lldb, хотя с gdb может потребоваться вручную загрузить файл символов.

как включить этот дополнительный шаг сборки

Выберите проекты на правой панели инструментов

Строка меню

Убедитесь, что вы находитесь на вкладке Build and Run (GraphicsScene это просто название проекта)

вкладки

Под Шаги сборки, вы увидите два шага, qMake а также Make, Выберите добавить шаг сборки для пользовательского шага процесса

Шаги сборки

Заполните соответствующие поля, которые вам могут понадобиться исправить для путей, а не просто скопировать их:

Введите данные

Когда сборка завершится, будет запущена команда strip. Если у вас есть какие-либо ошибки, скорее всего, это проблема с путем к команде strip или к исполняемому файлу вашего приложения.

Обратите внимание, что если вам нужен полный путь для чередования, он находится в / usr / bin / strip.

Что касается файла символов, я полагаю, что вы можете использовать addsymbolfileкоманда с аргументом пути к файлу dsym. Однако с тех пор gdb устарела, и вам действительно следует использовать lldb, который автоматически находит файл dsym после его индексации Spotlight.

0

Другие решения

Вы можете удалить символы отладки следующим образом:

Добавьте строку в ваш файл make, это удалит из него все символы отладки:

CD $ (MY_BINARY_INSTALL_PATH); strip —strip-debug $ (MY_BINARY_INSTALL_PATH) / bin / mybinary -o $ (MY_BINARY_INSTALL_PATH) / bin / mybinary

Если вы хотите удалить все символы из него, вы можете использовать что-то вроде:

CD $ (MY_BINARY_INSTALL_PATH); strip —strip-all $ (MY_BINARY_INSTALL_PATH) / bin / mybinary -o $ (MY_BINARY_INSTALL_PATH) / bin / mybinary

Удаление всех символов поможет значительно уменьшить размер двоичного файла.

0

По вопросам рекламы [email protected]