Я применил обратную трассировку для моего приложения Android, скомпилированного в XE6, используя Posix.Backtrace из https://bitbucket.org/shadow_cs/delphi-arm-backtrace. Как сейчас, я получаю обратную линию, но не номера строк.
Я ищу, чтобы создать файл карты для моего android.so, чтобы я мог кормить адреса во время выполнения до addr2line, чтобы в моем отчете об ошибке содержались номера строк.
Я искал IDE для создания файла карты, как и для приложения Win32 Delphi, выбрав
Проект > Параметры > Компилятор Delphi > Связывание.
Нет опции для файла карты, если выбрана платформа Android. Выбор всех конфигураций Android явно исключается: Map File ARM, только платформа устройств iOS; Файл карты, только 32-битный Windows, OSx, iOS. Я все равно попробовал оптимизацию, отлаживал и не получал .map файл.
Есть ли способ создать файл .map для приложения Android в Delphi?
Спасибо!
Если вы запустите командную строку RAD Studio и вызовите dccaarm.exe, вы увидите, что, несмотря на то, что IDE не всплывает, компилятор поддерживает ключи командной строки -G
и -GD
, оба из которых испускают карту файл.
Вызовите диалоговое окно параметров проекта (Ctrl+Shift+F11
), а в дереве опций выберите Delphi Compiler, Compiling. Теперь выберите "Другие параметры", "Дополнительные параметры", чтобы перейти к компилятору и введите -G
Перекомпилируйте свой проект, и будет создан файл карты, например. project_folder\Android\Debug\libProject1.so.map
Примечание. В Delphi 10.1 Berlin все еще отсутствует опция компоновщика IDE, о которой я смотрю - вопрос относится к Delphi XE7, поэтому некоторые из особенностей описанных выше шагов могут потребовать незначительной настройки.