Проблема с символом при отладке кода C #

Я использую WinDbg для загрузки аварийного дампа из управляемого кода (C #, консольное приложение, созданное для Любой ЦП), а аварийный дамп создается на платформе x64. Отлаживаю на платформе x64. Я поместил связанный файл PDB в путь к символу.

Но WinDbg всегда находит символ из чужой папки. Вот пример (когда я перестал использовать! Sym noisy):

SYMSRV:  c:\MySymbols\FooService.pdb\4311207E2E2D442CB7473828D2488F941\FooService.pdb not found

Мое приложение называется FooService.exe, а соответствующий файл PDB - FooService.pdb. Я установил C:\MySymbols в качестве пути к символу и скопировал FooService.pdb в каталог C:\MySymbols. Но почему WinDbg находит FooService.pdb не в C:\MySymbols, а в странной подпапке «FooService.pdb \ 4311207E2E2D442CB7473828D2488F941»?

В моем сценарии, как лучше всего загрузить файл символов PDB (нужно ли мне вручную создавать подпапку FooService.pdb\4311207E2E2D442CB7473828D2488F941)?


person George2    schedule 12.10.2009    source источник


Ответы (1)


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

Вы можете заставить загрузчик символов игнорировать любую кэшированную копию, используя команду .reload /fo. В сочетании с опцией .sympath вы сможете настроить загрузку. Простой способ добавить ваш локальный путь к пути символа - .sympath+ <PATH>. После этого выполните .reload /fo, чтобы игнорировать любые ранее кэшированные PDB.

РЕДАКТИРОВАТЬ: Я немного изменил свой ответ, так как считаю, что изначально неправильно прочитал ваш вопрос. Надеюсь, это обновление будет более полезным.

person Brian Rasmussen    schedule 12.10.2009
comment
воссоздайте путь к приложению локально и поместите файлы PDB со сборками - не могли бы вы подробнее описать, что вы имеете в виду, воссоздать путь к приложению локально? А файлы PDB со сборками выложить? В моем сценарии, какие каталоги мне нужно создать? - person George2; 12.10.2009
comment
Я провел некоторое исследование, и вы имеете в виду добавление локальной папки с символами в путь к символам? Что-то вроде этого? f: \ LocalSymbolPath; SRV C: \ mysymbols msdl.microsoft.com/download / символы - person George2; 12.10.2009
comment
У меня есть связанный с этим вопрос, буду благодарен, если вы могли бы взглянуть. stackoverflow.com/ вопросы / 1553041 / - person George2; 12.10.2009