Как я могу заставить Very Sleepy профилировщик распознавать имена функций в бинарном C++?

У меня есть инструмент, который представляет собой смешанный 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 я не могу получить имена функций, даже когда я компилирую в режиме отладки.

1 ответ

Убедитесь в следующем:

  1. Вы установили путь поиска символов (инструменты-> опции) на ваш локальный путь
  2. Сначала запустите ваше приложение, затем запустите сонный и профиль
  3. Прекратить профилирование до завершения приложения
Другие вопросы по тегам