Можно ли символизировать аварийные дампы MonoTouch и получать из них номера строк? - PullRequest
3 голосов
/ 27 сентября 2011

Можно ли символизировать аварийные дампы MonoTouch и получать из них номера строк?Если да, то как это сделать?

Я настроил свой проект следующим образом:

  • Сборка в режиме выпуска
  • Установлен флажок «Включить отладку» в ProjectПараметры -> Сборка -> Сборка iPhone -> вкладка Общие
  • Установлен флажок «Выводить информацию об отладке» в «Параметры проекта» -> Сборка -> Компилятор

Теперь, когда я запускаю символическую ошибку длядамп, я получаю имена моих методов в трассировке стека, но с смещением только против них (например, '+ 268') вместо номера строки.

Я использую MonoTouch 4.21.

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Краткий ответ: Я думаю проблема в опережающем (AOT) компиляторе - но вам лучше отправить такой вопрос по электронной почте в одноуровневую рассылку-list для получения окончательного ответа.

Длинный ответ:

Моно-компиляторы / среда выполнения (и это поведение наследуется MonoTouch) хранит информацию об отладке,он включает номера строк для своих сборок внутри файлов mdb .

XCode работает с файлами DWARF (DSYM).Когда XCode символизирует аварийный дамп, он ищет (только) в (созданных AOT) символах DWARF для получения своей информации - то есть файлы mdb не ищутся.

Теперь Mono отладчик (и время выполнения) может справиться и с DWARF (что должно отвечать всем требованиям).Однако для MonoTouch я не уверен, что компилятор AOT (который вызывает gcc ) производит final DWARF-символы, содержащие номера строк C #, что приводит к символам и смещения (оба доступны для gcc) доступны только.

1 голос
/ 05 октября 2011

какую версию xcode вы используете?

В более ранних версиях возникла проблема - проверьте https://github.com/chrispix/symbolicatecrash-fix

...