Я использую компилятор MSVC 2013, отладчик CDB и Qt Creator/qmake под Windows 7. Я только что обнаружил, что каталог сборки для одного из моих проектов является колоссальным 16 гигабайтами. Преступник - это подкаталог с именем «srv», который содержит различные файлы .pdb. Любопытная часть состоит в том, что существуют файлы pdb для всех типов системных библиотек, таких как commctl32, ntdll, user32 и т. Д. Мне действительно нужно создавать pdb для этих системных файлов, или это некоторые настройки, которые я могу отключить, или это Жук? Я не планирую отлаживать user32.dll, поэтому я не вижу причины генерировать отладочную информацию.Почему я получаю так много .pdb-файлов?
ответ
Файлы pdb для commctl32, ntdll, user32 не генерируются (поскольку эти библиотеки не скомпилированы вами). Они автоматически загружаются при отладке приложений для решения адресов памяти в именах функций (т. Е. При подготовке считываемой трассировки стека).
Вы можете настроить это в настройках VS2013, Debugging, Symbols. Там вы можете отключить автоматическую загрузку и/или изменить папку для размещения файлов. Предположим, что это также можно отключить/настроить для других отладчиков.
«Кэш символов» растет: всякий раз, когда вы устанавливаете обновления Windows, новые библиотеки могут быть развернуты на вашем компьютере, а в последующих сеансах отладки загружаются новые символы. Если у вас быстрое подключение к Интернету, нет никакой проблемы в очистке кеша.
- 1. Почему я получаю так много NSUserDefaultsDidChangeNotification
- 2. Я получаю так много java.lang.NullPointerException
- 3. Почему я получаю так много ошибок в режиме выпуска WP7
- 4. Befunge RNG - Почему я получаю так много двух?
- 5. Почему я получаю «слишком много рекурсии»
- 6. Почему я получаю много выходов - python?
- 7. Почему так много canOpenURL?
- 8. Почему так много разницы?
- 9. Почему я получаю много предупреждений Муха, когда я запускаю Catalyst?
- 10. System.Collections - почему так много вариантов?
- 11. Почему так много языков программирования?
- 12. Почему так много профилей Bluetooth?
- 13. Почему так много соединений установлено?
- 14. EntityFramework - почему так много сущностей?
- 15. Почему так много msvcp80.dll?
- 16. Почему InputStream.available() так много времени?
- 17. Почему так много символических ссылок?
- 18. Почему так много ошибок «AccessViolationException»?
- 19. Почему я получаю NullPointerException
- 20. Почему я получаю «ValueError: слишком много значений для распаковки»?
- 21. Почему я получаю так много собственных значений нуля в моей реализации собственных Matlab?
- 22. Почему я получаю так много «бесполезных правил/токенов» в этой грамматике бизонов?
- 23. Почему я получаю зЬй :: bad_alloc, когда у меня есть так много свободной памяти
- 24. Файлы Resource.axd - Почему так много и почему так большой?
- 25. Почему этот запрос генерирует так много данных?
- 26. Почему так много GC_FOR_ALLOC в простом приложении?
- 27. Почему я получаю сообщение «Разблокировать фокус, используемое слишком много раз»?
- 28. Почему я получаю много ошибок при добавлении рамки Alamofire?
- 29. Почему я получаю ошибку Value: слишком много значений для распаковки?
- 30. Почему я получаю ошибку 'exceptions.ValueError: слишком много значений для распаковки?
Звучит как каталог кеша для файлов, выгруженных из сервера символов при отладке. Символы используются для генерации трассировки стека, даже если вы не напрямую отлаживаете эти модули. Я не слишком хорошо знаком с QtCreator, но, вероятно, есть параметр, позволяющий кэшировать эти файлы в одном глобальном местоположении, чтобы все ваши проекты QtCreator использовали один и тот же кеш вместо отдельных экземпляров. Если это кеш, вы можете удалить его, но отладчик, скорее всего, потянет их снова через Интернет по мере необходимости. –
«Я не планирую отлаживать user32.dll» Нет, но вы планируете узнать, какая функция user32 врезалась в вашу программу, не так ли? Для этого нужны эти файлы. Отладка без них - не забава. Современное развитие требует достаточного дискового пространства - привыкнуть к нему. –