18

I have a DLL that I want to profile.. I tried to use Very Sleepy, but I can't seem to get the source file column to display which source file the functions came from, all it displays is "unknown".. Anyway, I'm really baffled on how to use this app.. Can anyone point me to some help? There's not much documentation on it and it seems like it hasnt been maintained recently.. =/

Thanks..

EDIT: Adding another question:

What do the terms exclusive and inclusive mean in this app? Thanks..

krebstar
  • 3,956
  • 8
  • 46
  • 64

2 Answers2

26

You're going to need debugging information (PDB files) if you want to know the source file and column. That information doesn't get saved unless you ask for it.


Unfortunately the profiler has no documentation that I can find. However, there are definitions for inclusive and exclusive when it comes to profiling:

  • inclusive: total amount of time spent in function
  • exclusive: amount of time spent in function minus any time spent calling other functions
Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Max Lybbert
  • 19,717
  • 4
  • 46
  • 69
  • 3
    Thanks, adding the PDB + MAP file to the DLL directory makes the stuff show up.. :) I'm still getting some unknown stuff though, could this be some other DLL's function? – krebstar Jan 22 '09 at 08:52
  • 1
    I would expect it to be another DLL's function, yes. – Max Lybbert Jan 22 '09 at 20:02
  • Thanks for reporting the broken link. And "appears to be broken" is well phrased, because the link now directs to a PDF document that has nothing to do with my answer. I'll change to a different -- hopefully more stable -- document. – Max Lybbert Jul 30 '12 at 16:59
  • Looks like the link is broken again. Can't expect for the links to work after 6+ years though. – medasumanth Feb 21 '19 at 17:48
4

If you already have the PDB file, remember to keep it in the same directory it was generated.

If you don't remember what directory it should be kept in, just open your .exe or .dll with a text/hex editor and scroll until the very end of the file, the pdb directory will be there. This is true, at least, if you're using MSVC6.

I hope it helps.

David
  • 2,663
  • 3
  • 24
  • 41
  • No, what I do is I move my DLL to the directory where the executable requires it to be.. So when I run Very Sleepy I have to attach to the exe. Without the PDB files in the directory where the DLL was, I couldn't see the information.. But I added the PDB + MAP files to it and it worked.. – krebstar Jan 22 '09 at 09:00
  • Ok, maybe Very Sleepy doesn't pay attention to the information I mentioned and always tries to find the PDB in the same directory where the dll resides... Maybe my solution is MSVC specific... Anyway, it's great you made it work. – David Jan 22 '09 at 09:27
  • Thanks David.. :) I am actually using MSVC++ 6.. But I'm not running my dll from the compiler output directory, that's why I needed to move/copy the pdb and map files :).. Thanks.. – krebstar Jan 23 '09 at 01:11
  • You mean you had to copy the debug files to the directory where the exe is actually looking for them? – David Jan 28 '09 at 17:33