В чем разница между символами розничной торговли и отмеченными символами?

#symbols

#символы

Вопрос:

  1. Windows XP с пакетом обновления 3 для символов розничной торговли x86, на всех языках (размер файла: 209 МБ — большинство клиентов хотят этот пакет.)
  2. Windows XP с пакетом обновления 3 для x86 проверенные символы, все языки (размер файла: 202 МБ)

Цитируется здесь.

В чем разница между символами розничной торговли и отмеченными символами?

Ответ №1:

В общем, разница между «retail» и «checked» похожа на сборку «release» и «debug». Microsoft предоставляет два разных ядра, одно из которых скомпилировано для обычного использования, а другое содержит дополнительную отладочную информацию. Две разные сборки также имеют две разные таблицы символов.

Комментарии:

1. @Greg Hewgill, Символы предназначены для отладки, в релизных версиях нет никакой отладочной информации, верно? Если это так, то для чего используется символ розничной торговли?

2. Я только что проверил размер символов retail и checked, их размеры очень близки, 209 МБ и 202 МБ соответственно.

3. Символы retail и checkec являются файлами pdb для отладки.

4. В розничной сборке все еще есть символы, это адреса всех функций.

5. Итак, и retail, и checked имеют отладочную информацию, в чем разница?

Ответ №2:

Если вы изучаете ИТ или компьютерные науки в колледже (или если у вас есть доступ к программному обеспечению электронной академии MSDN), у вас, вероятно, будет доступ к специальным сборкам debug / checked для Windows Vista / 7. Некоторые профессионалы в области разработки программного обеспечения и инжиниринга также могут иметь установки специальных отладочных сборок. В противном случае, независимо от того, попадаются ли вам домашние или профессиональные издания — даже корпоративные и бизнес-версии — это, скорее всего, будет розничная версия. Для всех этих версий потребуется розничная версия символов отладки. Однако, если у вас установлена отладочная / проверенная сборка Windows, вам понадобятся отмеченные символы отладки.

Как объяснил Грег, символы отладки — это, по сути, адрес. Насколько я понимаю, они в основном являются собственным именем для функции или элемента в памяти, поэтому, когда пользователь отлаживает процесс или просматривает стек вызовов, он или она сможет видеть полезную информацию вместо смещений адресов.

Грег также уже ответил на это, но я попытаюсь уточнить. Для сборок retail и debug Windows требуются разные версии символов, поскольку файлы операционной системы компилируются по-разному, чтобы включать в себя более полезную отладочную информацию. Это приводит к незначительному смещению адресов символов, поэтому для правильной идентификации всего, что находится в памяти, требуется другой пакет.

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

Удачи, gdb.

Комментарии:

1. Единственной возможной причиной уменьшения размера пакета проверяемых символов, возможно, является то, что проверяемая сборка ОС уже включает некоторые символы отладки, и поэтому размер пакета проверяемых символов меньше.

2. Или, возможно, просто различия в сжатии: P

Ответ №3:

Для практических целей описание обоих пакетов было дано в статье Microsoft https://developer.microsoft.com/en-us/windows/hardware/download-symbols . Для точной,

«Почти всем клиентам требуются символы для розничной версии. Если вы отлаживаете специальную версию Windows с дополнительной отладочной информацией, то вам следует загрузить символы для проверяемой версии.»

Другими словами, скорее всего, вам нужна розничная версия.