Как я использую файлы PDB

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

45
задан SamB 15 April 2010 в 18:12
поделиться

3 ответа

Файлы PDB сгенерированы, когда Вы разрабатываете свой проект. Они содержат информацию, касающуюся созданных двоичных файлов, которые может интерпретировать Visual Studio.

, Когда программа отказывает и она генерирует отчет о катастрофическом отказе, Visual Studio в состоянии взять тот отчет и связать его назад с исходным кодом через файл PDB для приложения. Файлы PDB должны быть созданы из того же двоичного файла, который генерировал отчет о катастрофическом отказе!

существуют некоторые проблемы, с которыми мы встречались со временем.

  • машина, которая отлаживает потребности отчета о катастрофическом отказе иметь источник на том же пути как машина, которая создала двоичный файл.
  • Сборки конечных версий часто оптимизируют до степени, где Вы не можете просмотреть состояние переменных элемента объекта

, Если кто-либо знает, как победить первого, я был бы благодарен за некоторый вход.

34
ответ дан Gustavo Mori 26 November 2019 в 21:14
поделиться

Файлы PDB отображают MSIL блока на строки первоисточника. Это означает, что при помещении PDB, который был скомпилирован с блоком в том же каталоге как блок, отслеживания стека исключительной ситуации будут иметь имена и строки положений в файлах первоисточника. Без файла PDB Вы будете только видеть название класса и метода для каждого уровня отслеживания стека.

39
ответ дан Omer van Kloeten 26 November 2019 в 21:14
поделиться

Необходимо изучить установку сервера символов и индексацию файлов PDB к системе управления исходным кодом. Я просто недавно прошел этот процесс для нашего продукта, и это работает очень хорошо. Вы не должны быть обеспокоены предоставлением доступа к файлам PDB, с двоичными файлами, ни как получить соответствующий исходный код при отладке файлов дампа.

книга John Robbins: http://www.amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr=8-1

здесь Ищет некоторый пример кода для генерации мини-дампов (которые не должны быть ограничены для постразрушения анализа - можно генерировать их в любой точке в коде, не отказывая): http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

12
ответ дан psych 26 November 2019 в 21:14
поделиться
Другие вопросы по тегам:

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