У меня есть инструмент, который представляет собой смешанный C # / управляемый C ++ / неуправляемый C ++, созданный с помощью Visual Studio 2010. Код фактически распределяется по .exe (я назову его mybinary.exe) и .dll (mylib.dll).)
Я установил параметры сборки для проекта для dll и exe, чтобы генерировать файлы PDB в выпусках сборки.Я убедился, что файлы PDB находятся в одном и том же каталоге, в котором находятся exe и pdb. Но я все еще не вижу имен функций при отладке этой программы;Я просто вижу адреса.Вот соответствующая выдержка из того, что я получаю в маленькой строке состояния внизу, когда я выбираю программу на первом экране Very Sleepy:
DBGHELP: mybinary.vshost - public symbols
C:\Users\(me)\AppData\Local\sleepy\vshost32-clr2.pdb\(long hex string)\vshost32-clr2.pdb
...
DBGHELP: No debug info for C:\myproj\mylib.dll. Searching for dbg file
DBGHELP: C:\myproj\mylib.dbg - file not found
DBGHELP: C:\myproj\dll\mylib.dbg - path not found
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found
SYMSRV: C:\Users\peastlund\AppData\Local\sleepy\mylib.dbg\4EF1F48B13c000\mylib.dbg not found
DBGHELP: C:\myproj\mylib.dbg - file not found
DBGHELP: C:\myproj\dll\mylib.dbg - path not found
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found
DBGHELP: C:\myproj\mylib.dbg - file not found
DBGHELP: C:\myproj\mylib.dll missing debug info. Searching for pdb anyway
DBGHELP: mylib - public symbols
C:\myproj\mylib.pdb - unmatched
...
DBGHELP: MOD: mybinary.vshost
...
DBGHELP: mybinary - private symbols & lines
C:\myproj\mybinary.pdb
Так что похоже, что существует проблема с сопоставлением mylib.pdb сmylib.dll, по какой-то причине мне неясно, но я отмечу, что я не получаю правильные адреса для функций, которые тоже есть в mybinary.exe.У меня есть новый компьютер со всеми последними установками, так что это не проблема «какая-то библиотека устарела».
Очень признателен, если кто-то может помочь с этим!
РЕДАКТИРОВАТЬ: На самом деле этоОказывается, это не относится к оптимизированному коду.У других профилировщиков были некоторые проблемы с оптимизированным C ++, поэтому я перешел на Very Sleepy, но при тестировании я теперь понимаю, что с Very Sleepy я не могу получить имена функций даже при компиляции в режиме отладки.