У тебя действительно не должно быть дыр. Они создаются вашим алгоритмом разделения, но этот алгоритм неверен.
Для 1-5 элементов ваши деревья должны выглядеть следующим образом:
1 2 2 3 4
/ \ / \ / \ / \
1 1 3 2 4 2 5
/ / \
1 1 3
Самый простой способ заполнить дерево - это выполнить упорядоченный обход местоположений узлов, заполняя элементы из последовательности в заказ.
Нет Вы не должны развертывать их.
относительно того, почему они даже создаются в выпуске. Файл PDB действительно имеет несколько использования, но основные (по крайней мере, для меня)
, Обе из этих задач законно сделаны на двоичных файлах выпуска, который является, почему сборки конечных версий включают PDB. На самом деле, когда отладка Watson выводит, это - 100% времени против сборки конечных версий. Без PDB я должен был бы обратиться к просмотру dissasembly: (
Вы не должны развертывать и распределять файлы PDB наряду со своими двоичными файлами.
Однако я предлагаю, чтобы Вы сохранили их (и в конечном счете индексируйте их) чтобы быть в состоянии проанализировать любые файлы дампа что клиенты, QA, и поддерживать людей отправляет Вас. Таким образом, Вы будете в состоянии иметь понятные отслеживания стека и информацию о символе.
Если Вы хотите, можно также выключить поколение файла PDB в опциях компиляции.
файл PDB содержит информацию о названиях функций. Вам нужен он, чтобы быть в состоянии получить отслеживание стека. Это может также содержать информацию об отображении его к источникам. Иногда Вы могли бы хотеть поставить свою версию выпуска и все еще должны проанализировать катастрофический отказ, который происходит на стороне клиента. Для этого необходим PDB. PDB, когда компиляция для выпуска должна в теории иметь меньше информации, компилируя для отладки.
Файлы PDB содержат отладочные символы, которые позволяют Вам отлаживать свой двоичный файл даже в режиме выпуска . Вы не имеете к (и вероятно не должен развертывать их), поскольку они могли бы использоваться для инженерного анализа приложения. Действительно сохраните их заархивированными где-нибудь, тем не менее, потому что они входят очень удобные, когда Вы хотите отладить дамп катастрофического отказа.
Нет. Вы не должны распределять их. Это поможет с отладкой (или я должен сказать, что это сделает отладку возможной для нормальных людей).
можно также выключить или корректироваться, 'уровень' символов, сгенерированных в Visual Studio - просто, переходят к Свойствам проекта / вкладка 'Build' / 'Усовершенствованный' - и вносят изменения в поле 'Debug info'.
Поскольку большинство людей на этом потоке сказало: нет, Вы не должны поставлять файл (файлы) PDB; но действительно Вы должны, если Вы когда-нибудь намереваетесь выпустить код на волю.
Это действительно о способности поддержать Ваше приложение. Без PDB, когда Вы сбои приложения, весь Ваш пользователь будет в состоянии сказать Вам, необработанный адрес памяти где разрушенное приложение; но с файлом PDB Вы получаете ошибку, о которой можно на самом деле сделать что-то.
Нет, Вы не поставляете .pdb файлы. Они сгенерированы, потому что иногда полезно быть в состоянии отладить сборку конечных версий.
Некоторые инструменты как InterceptStudio AVICODE используют pdb файлы, чтобы просмотреть источник конкретной трассировки исключения/стека / локальный из инструмента, вместо того, чтобы иметь необходимость открыть источник и перейти к определенной строке.
Вам не нужны они для выполнения.
pdb файлы могут использоваться, чтобы отладить, даже если сборка находится на конфигурации выпуска.
Нет, Вы не должны развертывать .pdb файл.
Для заключения в кавычки от MSDN, "Файл PDB создается, когда Вы создаете с отладкой / (Visual Basic/C#)". таким образом, это не должно создавать базу данных отладки при компиляции для выпуска.