Я считаю (поправьте меня, если я ошибаюсь), что при удаленной отладке с gdb
а также gdbserver
двоичный файл, запущенный на цели под gdbserver
не нуждается в отладочной информации в двоичном файле, но хост, работающий gdb
, делает.
Наш двоичный файл приложения с отладочными символами составляет около 112 мегабайт (!). Если я запускаю стриптиз, бинарный файл будет всего 6,7 мегабайта, что намного быстрее развернет к нашей цели.
Возможно ли, чтобы Qt Creator удалил двоичный файл перед его развертыванием? Сможем ли мы все еще отлаживать?
Чтобы удалить символы, вы можете заставить 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.
Вы можете удалить символы отладки следующим образом:
Добавьте строку в ваш файл 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
Удаление всех символов поможет значительно уменьшить размер двоичного файла.