Не является действительным файлом значка

Обновлено: 05.07.2024

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

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

Подробные сведения о файлах символов см. в следующих статьях:

Принципы использования файлов символов

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

  • Имя исходного файла и номер строки, которая отображается в интегрированной среде разработки Visual Studio.
  • Расположение точки останова в приложении.

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

Отладчик загружает только те PDB-файлы, которые точно соответствуют PDB-файлам, созданным при построении приложения (то есть исходные PDB-файлы или их копии). Точное дублирование является обязательным, поскольку компоновка приложения может быть изменена даже в том случае, если сам код не изменялся.

Если требуется выполнить отладку кода за пределами исходного кода проекта, например кода Windows или стороннего кода, вызываемого проектом, необходимо указать расположение PDВ-файлов (и, если необходимо, исходных файлов) для внешнего кода, причем эти файлы должны точно соответствовать сборкам вашего приложения.

Расположение файлов символов и поведение при загрузке

При отладке проекта в интегрированной среде разработки Visual Studio отладчик автоматически загружает файлы символов, расположенные в папке проекта.

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

Отладчик также ищет файлы символов в следующих местах:

Расположение, указанное в библиотеке DLL или в исполняемом файле (EXE).

По умолчанию, если на компьютере производится сборка библиотеки DLL или исполняемого файла (EXE), компоновщик помещает полный путь и имя связанного PDB-файла в библиотеку DLL или в EXE-файл. Отладчик проверяет, присутствует ли файл символов в этом расположении.

Папка, в которой располагается сам DLL- или EXE-файл.

Любые расположения, указанные в параметрах отладчика для файлов символов. Сведения о добавлении и активации расположений символов см. в разделе Настройка расположения символов и параметров загрузки.

Любая папка локального кэша символов.

Указанные серверы и расположения символов — локальные, сетевые или в Интернете — такие как серверы символов корпорации Майкрософт, если эта возможность включена. Visual Studio может загружать отладочные файлы символов с серверов символов, которые реализуют протокол symsrv . Visual Studio Team Foundation Server и средства отладки для Windows — это два средства, которые могут использовать серверы символов.

Возможно использование следующих серверов символов:

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

Сторонние серверы символов Сторонние поставщики приложений Windows и библиотек могут предоставить доступ к серверу символов в Интернете.

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

Настройка расположения символов и параметров загрузки

На странице Сервис > Параметры > Отладка > Символы можно выполнить следующие действия.

  • Указать и выбрать пути поиска и серверы символов для компонентов Майкрософт, Windows или сторонних производителей.
  • Указать модули, для которых отладчик будет или не будет автоматически загружать символы.
  • Эти параметры можно изменять во время выполнения отладки. См. раздел Управление символами при отладке.

Указание расположения символов и параметров загрузки:

В Visual Studio откройте меню Сервис > Параметры > Отладка > Символы (или Отладка > Параметры > Символы).

В разделе Места размещения файлов символов (.pdb) :

Чтобы добавить новое расположение сервера символов:

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

Добавление нового расположения сервера символов VSTS:

Чтобы изменить порядок загрузки для расположений символов, используйте клавиши CTRL+СТРЕЛКА ВВЕРХ и CTRL+СТРЕЛКА ВНИЗ либо значки со стрелками вверх и вниз.

Чтобы изменить URL-адрес или путь, дважды щелкните элемент или выберите его и нажмите клавишу F2.

Чтобы удалить элемент, выделите его и щелкните значок - .

Необязательно: чтобы повысить производительность загрузки символов, перейдите в раздел Кэшировать символы в этом каталоге и введите путь к локальной папке, в которую серверы символов могут копировать символы.

Не размещайте локальный кэш символов в защищенной папке, такой как C:\Windows или вложенные папки. Вместо этого следует использовать папку, для которой разрешены чтение и запись.

Если для проекта C++ задана переменная среды _NT_SYMBOL_PATH , она переопределяет значение, заданное в разделе Кэшировать символы в этом каталоге.

Укажите модули, которые отладчик должен загружать из расположений файлов символов (. pdb) при запуске.

Выберите Все модули, кроме исключенных (значение по умолчанию), чтобы загружать все символы для всех модулей, кроме тех, что были явно исключены. Чтобы исключить конкретные модули, выберите Укажите исключенные модули, щелкните значок + , введите имена исключаемых модулей и нажмите кнопку ОК.

Чтобы загружать из расположений файлов символов только заданные модули, выберите Загружать только указанные модули. Выберите Укажите включенные модули, щелкните значок + , введите имена включаемых модулей и нажмите кнопку ОК. Файлы символов для других модулей не загружаются.

Другие параметры символов для отладки

Для настройки дополнительных параметров символов перейдите в раздел Сервис > Параметры > Отладка > Общие (или Отладка > Параметры > Общие):

Загружать экспорты из DLL (только машинный код)

Загружает таблицы экспорта библиотеки DLL для C/C++. Дополнительные сведения см. в разделе Таблицы экспорта библиотеки DLL. Поскольку на чтение данных экспорта для библиотеки DLL затрачиваются определенные ресурсы, по умолчанию загрузка таблиц экспорта отключена. Кроме того, вы можете использовать dumpbin /exports в командной строке сборки C/C++.

Включить отладку на уровне адреса и Показывать дизассемблированный код, если исходный код недоступен

Дизассемблированный код отображается во всех случаях, когда исходные файлы или файлы символов не найдены.

Параметры / Отладка / Общие параметры дизассемблирования

Включить поддержку сервера системы управления версиями

Если исходный код на локальном компьютере отсутствует или PDB-файл не соответствует исходному коду, при отладке приложения используется сервер системы управления версиями. Сервер системы управления версиями принимает запросы на файлы и возвращает сами файлы из этой системы. Сервер системы управления версиями использует для работы библиотеку srcsrv.dll, которая нужна для чтения PDB-файла приложения. Этот PDB-файл содержит указатели на репозиторий исходного кода, а также команды, используемые для получения исходного кода из репозитория.

Чтобы ограничить набор команд, которые библиотека srcsrv.dll может исполнять из PDB-файла приложения, можно включить список допустимых команд в файл srcsrv.ini. Поместите файл srcsrv.ini в ту же папку, что и файлы srcsrv.dll и devenv.exe.

В PDB-файл приложения можно внедрять произвольные команды, поэтому убедитесь, что в файл srcsrv.ini включены только те из них, которые требуется выполнять. Любая попытка выполнить команду не из файла srcsvr.ini вызовет диалоговое окно подтверждения. Дополнительные сведения см. в статье Предупреждение системы безопасности. Отладчик должен выполнить команду без доверия.

Параметры команд не проверяются, поэтому будьте внимательны с доверенными командами. Например, если вы включили команду cmd.exe в файл srcsrv.ini, пользователь-злоумышленник может указать параметры, которые сделают выполнение команды cmd.exe опасным.

Выберите этот элемент и нужные дочерние элементы. Параметры Разрешить выполнение частично доверенных сборок (только управляемых) на сервере системы управления версиями и Всегда выполнять ненадежные команды исходного сервера без запроса могут повысить риски безопасности, описанные выше.

Включить параметры сервера системы управления версиями

Параметры символов для компилятора

Если при выполнении сборки проекта из интегрированной среды разработки Visual Studio используется стандартная конфигурация сборки Отладка, компилятор C++ и управляемые компиляторы создают соответствующие файлы символов для кода. Параметры компилятора также можно задать в коде.

Параметры C/C++

PDB-файл для C/C++ создается при сборке с параметрами /ZI или /Zi. В Visual C++ параметр /Fd присваивает имя PDB-файлу, который создается компилятором. При создании проекта в Visual Studio с использованием интегрированной среды разработки используется параметр /Fd с целью создания PDB-файла с именем <project>.pdb.

При сборке приложения, написанного на C/C++, с использованием файла makefile и указанием параметра /ZI или /Zi без /Fd компилятор создает два описанных ниже PDB-файла:

VC<x>.pdb, где <x> представляет версию компилятора Microsoft C++, например VC11.pdb.

Файл VC<x>.pdb хранит все отладочные данные для отдельных объектных файлов и располагается в том же каталоге, что и файл makefile проекта. Каждый раз, создавая объектный файл, компилятор C/C++ добавляет отладочную информацию в файл VC<x>.pdb. Поэтому, даже если исходный файл включает общие файлы заголовков, такие как <windows.h> , определения типов (typedef) из этих заголовков сохраняются только один раз, а не включаются в каждый объектный файл. Вставляемая информация включает информацию о типах, но не включает символьную информацию, такую как определения функций.

Файл <project>.pdb содержит все отладочные данные из EXE-файла проекта и располагается в подкаталоге \debug. Файл <project>.pdb содержит полные отладочные данные, включая прототипы функций, а не только сведения о типах, содержащиеся в файле <x>.pdb.

Файлы VC<x>.pdb и <project>.pdb поддерживают добавочные обновления. Компоновщик также включает путь к PDB-файлам в EXE-файл или DLL-файл, которые он создает.

Таблицы экспорта библиотеки DLL

В выходных данных команды dumpbin /exports можно увидеть точное имя функции, включая символы, отличные от буквенно-цифровых. Просмотр точных имен функций полезен для задания точки останова в функции, поскольку в отладчике имена функций могут быть усечены в других местах. Дополнительные сведения см. в разделе dumpbin /exports.

Веб-приложения

Управление символами при отладке

Для загрузки символов или изменения параметров символов во время отладки можно использовать окна Модули, Стек вызовов, Локальные, Видимые или Контрольные значения. Дополнительные сведения см. в разделе Дополнительные сведения о присоединении отладчика к приложению.

Работа с символами в окне "Модули"

В процессе отладки в окне Модули можно узнать, какие модули будут рассматриваться отладчиком в качестве пользовательского кода (или "моего кода"), а также проверить состояние загрузки символов для них. Кроме того, в окне Модули вы можете отслеживать состояние загрузки символов, загружать символы и изменять параметры символов.

Отслеживание или изменение расположений и параметров символов во время отладки:

  1. Чтобы открыть окно Модули во время отладки, выберите Отладка > Окна > Модули (или нажмите клавиши CTRL + ALT + U).
  2. В окне Модули щелкните правой кнопкой мыши заголовки Состояние символов или Файл символов либо любой модуль.
  3. В контекстном меню выберите один из следующих вариантов:

Использование страниц "Символы не загружены" или "Нет исходного кода"

Отладчик может прервать выполнение в коде, для которого отсутствуют файлы символов или исходные файлы, в результате любого из следующих событий:

  • Шаг с заходом в код.
  • Приостановка выполнения кода из-за точки останова или исключения.
  • Переключение на другой поток.
  • Изменение кадра стека двойным щелчком по кадру в окне Стек вызовов.

Когда происходит любое из этих событий, отладчик отображает страницу Символы не загружены или Нет исходного кода, чтобы помочь найти и загрузить необходимые символы или исходный код.

Использование страницы "Символы не загружены" для поиска и загрузки отсутствующих символов:

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

Добавление путей поиска исходных файлов в решение:

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

Выберите решение в обозревателе решений и затем щелкните значок Свойства, нажмите клавиши ALT+ВВОД либо щелкните это решение правой кнопкой мыши и выберите пункт Свойства.

Выберите Исходные файлы отладки.

В разделе Каталоги, содержащие исходный код введите или выберите расположения исходного кода для поиска. Щелкните значок Новая строка для добавления дополнительных расположений, значки со стрелками вверх и вниз для изменения их порядка либо значок X для их удаления.

Отладчик выполняет поиск только в указанном каталоге. Любые подкаталоги, в которых требуется осуществлять поиск, должны быть внесены в список.

В разделе Не выполнять поиск следующих исходных файлов введите имена исходных файлов, исключаемых из поиска.

Иконка для exe файла
У меня есть разработанное приложение в Visual Studio 17 помогите пожалуйста сделать иконку для.


Не меняется иконка exe файла программы
Нужна помощь ребят! Сделал программу, поставил иконку, потом захотел поменять и меняю уже второй.

Иконка exe-файла
Здравствуйте, в winforms есть стандартная иконка для форм. Можно ли как нибудь установить ее для.

Иконка для .exe файла в QT.
Подскажите пожалуйста, как поставить иконку для ехешника в QT. Для самой формы есть, но для.

Да, есть такие у нее косяки, среда-то сложная, видимо что-то одно зависит от другого. Я всегда использовал в подобных случаях "Перестройку решения" - Ctrl+Alt+F7. Помогает конкретно. Вариант полегче, как компиляция rc-файла отдельно не рассматриваю, хотя и он имеет право на существование. Если еще актуально. Открыл папку с проектом, там хранится ICO-файл, первый по внешнему виду , но с новым названием. Может храниться и первый файл. Далее открыть с помощью Пайнта. И все) Файл обновился до нового и все заработало как ни в чем не бывало

У меня это косяк операционки. В папке проекта новая иконка а при копировании в рабочую папку. там старая икона.

Добавлено через 1 минуту
Открываю рядом две папки содержащие один и тот же файл и там разные иконы. Бред.


Иконка для exe-файла
как програмно или настройками задать значек для екзешки полученной в результате компиляции проэкта.

Иконка для exe из файла
Add new item - icon file. Там два файлика 16х16 и 32х32 , по 4 бита каждый.Есть png который.

Иконка для exe-файла
подскажите пожалуйста, как сделать так, чтобы у exe-файла отображалась моя иконка, а не просто как.

Иконка для exe файла
Как поменять иконку исполняемого exe файла через этот файл?

Я получаю следующую ошибку при попытке скомпилировать и протестировать любой тип проекта в Visual Studio 2012 Professional.

Ошибка 1 указанный исполняемый файл задачи " Csc.exe " не удалось запустить. Указанный исполняемый файл не является действительным приложением для этой операционной системы.

У меня была эта точная проблема сегодня на моей машине Win7. Как предлагает Ханс, "перейдите к C:\Windows\Microsoft.NET\Framework\v4.0.30319 и типа "csc".'

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

проблемы, связанные с csc.exe в Visual Studio 2012 в основном можно решить путем ремонта Visual Studio.

необходимо восстановить Visual Studio. Перейти к Панель Управления -> - программы. Затем выберите версию Visual Studio, которую вы используете, и нажмите"изменить"(или щелкните его правой кнопкой мыши и нажмите "изменить"). Когда появится настройка, нажмите"ремонт".

Проверьте свойства решения (щелкните правой кнопкой мыши на решении и выберите "Свойства") и убедитесь, что поле "платформа" (свойства конфигурации) установлено правильно.

Я думаю, что эта проблема вызвана неправильной очисткой ПК. Я запускал программное обеспечение Quick Heal PCTuner 3.0 на 64-битной машине windows 7, но внезапно из-за потери мощности моя машина была выключена, а когда я открыл ее снова, я получил эту проблему в VS 2013. Даже TortoiseSVN checkout не работал и бросал внутреннюю ошибку, и что-то вроде поврежденного диска также было показано при попытке удалить некоторые файлы на жестком диске.

Я снова запустил PC Tuner, делая диск, Реестр и следы очищаются, и это исправлено. возможно, эта проблема может возникнуть из-за других случаев, но в основном связана с файлами системы в моем случае это исправление

в Visual Studio 2013 та же проблема решена, сделав это для меня: Щелкните правой кнопкой мыши решение и откройте Configuration Manager. для проекта (вы можете увидеть по крайней мере один там), я изменил платформу с любой CPU to x86 для проекта, который может вызывать проблемы.

Я попытался удалить и переместить csc.EXE-файл, но он ничего не делает.

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

Метод 1: Удалить файл кэша

Для устранения проблемы удалите кэш файлов со значками в Windows 7. Чтобы сделать это, выполните следующие действия.

В меню Сервис выберите Свойства папки.

На вкладке Вид выберите Показывать скрытые файлы, папки и диски -флажок и нажмите кнопку ОК.

Показывать скрытые файлы, папки и диски

Вернуться в проводнике Windows, в левой области разверните узел компьютера .

Компьютер

Локальный диск

Пользователи

Дважды щелкните имя пользователя, откройте папку AppData и откройте локальную папку.

Папка AppData

Выберите файл IconCache.dbи нажмите клавишу DELETE на клавиатуре. В ответ на запрос, нажмите кнопку Да. Закройте все процессы и перезагрузите компьютер.

IconCache

Метод 2: Восстановить сопоставления расширений файлов

Если проблема сохраняется после удаления файла кэша или проблема возникает из-за удаления программы, связанный с типом файла, выполните следующие действия для восстановления сопоставлений файлов.

Все программы

Программы по умолчанию

Сопоставить тип файла или протокол с программой

Изменение программы

В окне Открыть с помощью выберите программу, которая соответствует списку и нажмите кнопку ОК.

Открыть с помощью

Примечание: Если нужная программа не входит в список «Рекомендуемые программы», щелкните стрелку в поле другие программы, Чтобы просмотреть другие параметры. Если программа не отображается, нажмите кнопку Обзор и найдите файл, затем нажмите кнопку Открыть.

Другие программы

Обзор

Тип файла связан с выбранной программой, закройте окно и проблема решена.

Ваше мнение интересующих нас: без колебаний сказать, что вы думаете об этой статье, используя поле Комментарий, расположенный в нижней части окна документа. Это позволит нам улучшить содержимое. Заранее Благодарим вас!

Читайте также: