No source from DLL

I have a project that has a structure like this:
\MAINDLL
\MAINDLL\TESTAPP
\MAINDLL\SVCCTRL

The testapp is a command line app that I use for testing my code.
I am trying to profile the testapp.exe (it calls the MAINDLL).
They are all part of the same solution in VS.NET 2003.
I have copied the PDB's all into the same directory, but I still never see any source code other than the testapp.

How can I get the profiler to show me the source?
Jason Short
VistaDB Managed SQL Database Engine
http://www.vistadb.net

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    Hi Jason,

    I believe that the .pdb files should live alongside whatever .net assembly that they belong to in the same folder. Moving the pdb is probably a bad idea because then we don't know where to find it.

    Can you try leaving them in their original locations?
  • I put it in both locations, only the original location no luck.
    I ONLY see the source file from the exe, none from the DLL. I can see their function names, and the timing, but no code.
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Is there a way I can just tell it to look in the following dirs for source?
    That would be the easiest. Or if I could just open the source file browsing, and then it could read it and see what functions were in it.
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    Does the 'Locate Source Code' menu option work, or is it greyed out?
  • Grayed out. I tried to open and close the app, but it is still grayed out.
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Are you sure that none of the dlls are also in the Global Assembly Cache?

    If the assembly is loaded from the GAC, then you'd need to copy the .pdb to the GAC (using the command prompt because opening WINNT\Assembly in Explorer won't work: it's a 'special folder'!)
  • The DLL is a simple assembly that is not in the GAC. I double checked to make sure, and it is not there.

    This is XP SP2 if that makes any difference...
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Hi Jason,

    Can you show me a DIR /S output of the TESTAPP folder?
  • Here you go. The DLL is one directory up...
    \dirname\testapp is the executable
    \dirname\ is where the main dll is built


    Volume in drive C has no label.
    Volume Serial Number is 2416-97CB

    Directory of C:\source\emerald\SpamLibrary\TestApp

    09/15/2004 05:29 PM <DIR> .
    09/15/2004 05:29 PM <DIR> ..
    07/11/2004 09:00 PM 279 .MySCMServerInfo
    05/21/2004 08:08 AM 1,078 App.ico
    05/21/2004 08:08 AM 2,426 AssemblyInfo.cs
    05/06/2004 12:44 AM <DIR> bin
    05/06/2004 12:44 AM <DIR> obj
    09/15/2004 05:29 PM 0 test.txt
    07/11/2004 09:00 PM 1,001 TestApp.cs
    07/11/2004 09:00 PM 4,218 TestApp.csproj
    09/15/2004 03:02 PM 1,881 TestApp.csproj.user
    7 File(s) 10,883 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\bin

    05/06/2004 12:44 AM <DIR> .
    05/06/2004 12:44 AM <DIR> ..
    09/09/2004 01:05 PM <DIR> Debug
    07/04/2004 07:35 PM <DIR> Release
    0 File(s) 0 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\bin\Debug

    09/09/2004 01:05 PM <DIR> .
    09/09/2004 01:05 PM <DIR> ..
    09/15/2004 05:24 PM 73,728 SpamLibrary.dll
    09/15/2004 05:24 PM 16,384 TestApp.exe
    09/15/2004 05:24 PM 17,920 TestApp.pdb
    3 File(s) 108,032 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\bin\Release

    07/04/2004 07:35 PM <DIR> .
    07/04/2004 07:35 PM <DIR> ..
    07/30/2004 02:33 PM 69,632 SpamLibrary.dll
    07/30/2004 02:34 PM 16,384 TestApp.exe
    2 File(s) 86,016 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\obj

    05/06/2004 12:44 AM <DIR> .
    05/06/2004 12:44 AM <DIR> ..
    09/15/2004 05:24 PM <DIR> Debug
    07/30/2004 02:34 PM <DIR> Release
    0 File(s) 0 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\obj\Debug

    09/15/2004 05:24 PM <DIR> .
    09/15/2004 05:24 PM <DIR> ..
    05/05/2004 11:51 PM <DIR> temp
    05/05/2004 11:51 PM <DIR> TempPE
    09/15/2004 05:24 PM 16,384 TestApp.exe
    09/15/2004 05:24 PM 17,920 TestApp.pdb
    2 File(s) 34,304 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\obj\Debug\temp

    05/05/2004 11:51 PM <DIR> .
    05/05/2004 11:51 PM <DIR> ..
    0 File(s) 0 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\obj\Debug\TempPE

    05/05/2004 11:51 PM <DIR> .
    05/05/2004 11:51 PM <DIR> ..
    0 File(s) 0 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\obj\Release

    07/30/2004 02:34 PM <DIR> .
    07/30/2004 02:34 PM <DIR> ..
    05/06/2004 12:44 AM <DIR> temp
    05/06/2004 12:44 AM <DIR> TempPE
    07/30/2004 02:34 PM 16,384 TestApp.exe
    1 File(s) 16,384 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\obj\Release\temp

    05/06/2004 12:44 AM <DIR> .
    05/06/2004 12:44 AM <DIR> ..
    0 File(s) 0 bytes

    Directory of C:\source\emerald\SpamLibrary\TestApp\obj\Release\TempPE

    05/06/2004 12:44 AM <DIR> .
    05/06/2004 12:44 AM <DIR> ..
    0 File(s) 0 bytes

    Total Files Listed:
    15 File(s) 255,619 bytes
    32 Dir(s) 87,140,478,976 bytes free
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Great! Thanks.

    I couldn't help but notice that 'SpamLibrary.pdb' is missing from the DEBUG folder. That would keep you from getting the code for that assembly, for a start...
  • Great! Thanks.

    I couldn't help but notice that 'SpamLibrary.pdb' is missing from the DEBUG folder. That would keep you from getting the code for that assembly, for a start...

    I mentioned that above that I moved it there and it still does not work. The DLL is copied to the local directory during compile (otherwise the calling app won't find it).

    Here is the application path:

    \DLLPATH
    \DLLPATH\TESTAPP

    So of course the pdb file for the dll is in:
    \DLLPATH\BIN\DEBUG
    while the test app's is:
    \DLLPATH\TESTAPP\BIN\DEBUG

    But visual studio copies the DLL itseld to the TESTAPP's bin directory. I already tried moving the pdb to that path and it did't work. I also tried re-doing the entiure project do they are both at the same path level and that didn't work. My trial is now about to expire and I have never gotten it to work...
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Hi Jason,

    I had one rather wierd case where ANTS Profiler couldn't find the source code and changing the permissions to grant read/write to everyone for the folder where the code files were fixed the problem. Maybe that's worth looking into.

    And then there's the old favourite; everyone doesn't have read/write to %TMP% and %TEMP%. In that case, I think that Profiler can't assemble the code and the line-level timings into the one RTF document that gets displayed in the lower window.
  • This is not a web app. Permissions should not be an issue. This is a simple command line app. And I am running as admin while doing this test.

    Since my trial is up I guess I will have to uninstall.

    Thanks.
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Is version 2 still on target for release soon?
    I really need a product like this, but had to uninstall the current version since I could not get it to show source, and my trial period was up.
    Jason Short
    VistaDB Managed SQL Database Engine
    http://www.vistadb.net
  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    Hi Jason,

    Profiler v2 is still some weeks away. It's being thoroughly tested before release.
Sign In or Register to comment.