Использование профилировщика «Very Sleepy» для профилирования DLL

17

У меня есть DLL, которую я хочу профилировать. Я попытался использовать Very Sleepy , но я не могу показаться чтобы получить столбец исходного файла, чтобы отобразить исходный файл, из которого были получены функции, все, что он отображает, «неизвестно». Во всяком случае, я действительно озадачен тем, как использовать это приложение. Может ли кто-нибудь указать мне на какую-то помощь? На нем мало документации, и похоже, что он не поддерживался в последнее время. = /

Спасибо ..

EDIT: добавление другого вопроса:

Что означают исключительные и включительные термины в этом приложении? Спасибо ..

    
задан krebstar 22.01.2009 в 08:23
источник

2 ответа

25

Вам понадобится отладочная информация (файлы PDB), если вы хотите узнать исходный файл и столбец. Эта информация не сохраняется, если вы ее не попросите.

К сожалению, у профайлера нет документации, которую я могу найти. Тем не менее, есть определения для включения и исключения, когда дело доходит до профилирования

  • включительно: общее количество времени, проведенного в функции
  • exclusive: количество времени, проведенного в функции минус любое время, потраченное на вызов других функций.
ответ дан Max Lybbert 22.01.2009 в 09:14
  • Спасибо, добавив, что файл PDB + MAP в DLL-каталог заставляет вещи появляться .. :) Я все еще получаю некоторые неизвестные вещи, возможно, это может быть какая-то другая функция DLL? –  krebstar 22.01.2009 в 09:52
  • Я бы ожидал, что это будет другая функция DLL, да. –  Max Lybbert 22.01.2009 в 21:02
  • Спасибо за дополнительную информацию .. :) –  krebstar 23.01.2009 в 02:09
  • +1 для определения. Ссылка, кажется, сломана. –  Torleif 30.07.2012 в 08:24
  • Спасибо за сообщение о неработающей ссылке. И «кажется, что он сломан» хорошо сформулирован, потому что ссылка теперь направляет в документ PDF, который не имеет никакого отношения к моему ответу. Я перейду к другому - надеюсь, более стабильному - документу. –  Max Lybbert 30.07.2012 в 18:59
4

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

Если вы не помните, в каком каталоге он должен храниться, просто откройте ваш .exe или .dll с помощью текстового / шестнадцатеричного редактора и прокрутите его до самого конца файла, там будет каталог pdb. Это правда, по крайней мере, если вы используете MSVC6.

Надеюсь, это поможет.

    
ответ дан David Alfonso 22.01.2009 в 09:56
  • Нет, что я делаю, я перемещаю свою DLL в каталог, в котором требуется исполняемый файл. Поэтому, когда я запускаю Very Sleepy, я должен подключаться к exe. Без файлов PDB в каталоге, где была DLL, я не мог видеть информацию. Но я добавил к нему файлы PDB + MAP, и это сработало. –  krebstar 22.01.2009 в 10:00
  • Хорошо, может быть, Very Sleepy не обращает внимания на информацию, о которой я упоминал, и всегда старается найти PDB в том же каталоге, где находится dll ... Может быть, мое решение - это MSVC. В любом случае, это здорово. заставил его работать. –  David Alfonso 22.01.2009 в 10:27
  • Спасибо, Дэвид .. :) Я фактически использую MSVC ++ 6 .. Но я не запускаю свою dll из выходного каталога компилятора, поэтому мне нужно было переместить / скопировать файлы pdb и map :) .. Спасибо. , –  krebstar 23.01.2009 в 02:11
  • Вы имеете в виду, что вам нужно было скопировать файлы отладки в каталог, где exe действительно ищет их? –  David Alfonso 28.01.2009 в 18:33