Как добраться, корректные номера строки в symbolicated разрушают отчеты (iPhone / Mac)?

Я пошел бы с

typedef enum { xNew = 1, xDeleted, xModified = 4, xExisting = 8 } RecordType;

Просто потому что:

  1. Это более чисто, и это делает код читаемым и удобным в сопровождении.
  2. Это логически группирует константы.
  3. время Программиста более важно, если Ваше задание не для сохранения тех 3 байтов.
7
задан Martijn Thé 21 August 2009 в 19:26
поделиться

2 ответа

В этой Технической записке показано, как связать отчет с кодом

3
ответ дан 2 September 2019 в 05:31
поделиться

Одним словом … Нет. Если вы смотрите на такую ​​строку в отчете о сбое:

0 com.apple.CoreFoundation 0x95cb046b CFArrayAppendValue + 43

«+43» не является номером строки, но ячейка памяти с самого начала функции. Код в том виде, в каком вы его написали, просто не существует в скомпилированном двоичном файле - компилятор оптимизирует и изменяет код (по крайней мере, в сборке Release), поэтому он чаще всего не соответствует тому, что вы написали.

К сожалению, решение состоит в том, чтобы предоставить человеку, у которого произошел сбой, отладочную версию, которую вы можете удаленно отлаживать или, по крайней мере, выбросить операторы NSLog (), чтобы помочь отследить ее, и / или написать более мелкие методы.

7
ответ дан 7 December 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: