Генерация символов в двоичных выпусках с помощью Visual Studio - PullRequest
7 голосов
/ 15 мая 2009

Обновление: я разместил комментарий в блоге Джона Роббинса о. Он написал ответ здесь:

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/19/do-pdb-files-affect-performance.aspx

Проект, над которым я работаю, не создает символы для своих выпусков, и я хотел бы изменить это.

Некоторая информация:

  • В основном кодовая база C ++, немного C #.
  • Скомпилировано в VS2k5, будет перемещено в систему Team VS2k8.
  • Программное обеспечение, критичное ко времени.
  • Должны быть включены оптимизации.
  • Исходный код предоставляется клиенту, поэтому полные символы в порядке.

Каковы лучшие параметры командной строки для генерации того, что мне нужно, и какие, если таковые имеются, потери производительности я собираюсь получить?

Кроме того, есть ли какие-то "Gotchas", о которых нужно знать?

Ответы [ 5 ]

7 голосов
/ 15 мая 2009
6 голосов
/ 15 мая 2009

Генерация символов отладки (т.е. файлов PDB) - это просто создание внешнего файла, на который может ссылаться отладчик при просмотре вашего кода в памяти. Это не влияет на код, который генерирует компилятор или компоновщик (что-то вроде генерации файла .MAP).

Теперь, если вы говорите об определении _DEBUG в сборке релиза, это совсем другой вопрос.

5 голосов
/ 16 мая 2009

Обновление: я разместил комментарий в блоге Джона Роббинса о. Он написал ответ здесь:

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/19/do-pdb-files-affect-performance.aspx

Я нашел следующую ссылку на сайте Microsoft: Создание и развертывание символов отладки с помощью Microsoft Visual C ++ 6.0

Эта ссылка относится к Visual C ++ 6, но я предполагаю, что эти инструкции одинаковы для Visual C ++ 8 (2005) и 9 (2008).

Информация, которую она предоставляет, очень похожа на ссылку, предоставленную TheBlack, но более углублена.

1 голос
/ 01 мая 2019

Переключатель / Zi в Visual C ++ создаст PDB, но этот параметр также подразумевает дополнительные настройки, которые увеличат DLL или EXE. В частности, /Zi означает / DEBUG , что означает / INCREMENTAL , / OPT: NOREF и / OPT: NOICF . Последние три увеличивают размер скомпилированной DLL или EXE, но их можно переопределить, указав /OPT:REF и /OPT:ICF в дополнение к /Zi. Нет необходимости переопределять /INCREMENTAL, так как /OPT:REF и / или /OPT:ICF обеспечит полную неинкрементную ссылку.

Источник: Правильное создание собственных PDB сборки C ++ Release Build

0 голосов
/ 15 мая 2009

Я не знаю командной строки, но вам нужно установить символы отладки как в конфигурации компилятора c ++ (база данных программы), так и в компоновщике (сгенерировать информацию отладки) в IDE.

Если вы найдете настройки в проекте, вы можете использовать справку, чтобы увидеть, к каким командным строкам они относятся.

...