none
No type information available in symbol file for PortableDeviceApi.dll

    Question

  • Hi,

    The C++ code I am working on involves the WPD (Windows Portable Devices) API.
    When debugging the program, I need to explore the COM objects that have been instantiated.
    When I try to, I get the message: "No type information available in symbol file for PortableDeviceApi.dll" (image 1 below).

    Yet, I have used the public Microsoft Symbol Server to download the .pdb files corresponding to the DLL, in this case the "PortableDeviceApi.dll".
    As shown in the "Modules" window, "Symbols [are] loaded" for this DLL (image 2 below).

    Can you please tell me what's wrong?

    Thank you and best regards.
    --
    Léa

    Tuesday, April 23, 2019 11:04 AM

All replies

  • Its certainly possible that the symbol file had private symbols stripped out.

    You can see the effect in the following example.  I created a simple COM server and had Visual Studio create two pdb files for the DLL.  One had full symbols and the other was created with the /PDBSTRIPPED linker option.

    The VS2015 debugger shows this for an interface pointer when the "regular" pdb was loaded -

    However, when the stripped pdb was loaded this is what the VS2015 debugger displayed -

    Tuesday, April 23, 2019 12:10 PM
  • Hello,

    Thank you for your answer and for showing me the difference in the two cases you mention.

    So, in the specific case of the "PortableDeviceApi.dll", and, for example, in the following case:


    I won't be able to see the values that were retrieved while debugging the code?

    Has anyone had an experience with that specific DLL?
    Is it normal that I cannot observe any of the objects of this library?

    Thank you and best regards.

    Wednesday, April 24, 2019 1:34 PM
  • Hi friend,

    Welcome to MSDN forum.

    Do  you use a UWP project? What the result if you change the Platform(X86 and X64) and rebuild it, same issue persists?

    It seems to be similar to this issue: No type info for windows.storage.dll

    Maybe there is a limitation there. And it could be better if you could share a simple sample by one-drive here, so that I can check for you directly.

    Looking forward to your reply.

    Best Regards

    Lance


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Friday, April 26, 2019 8:43 AM
  • Hi,

    Lance> Do you use a UWP project?

    I created an empty Visual C++ project with MS Visual Studio 2013.

    Lance> What the result if you change the Platform(X86 and X64) and rebuild it, same issue persists?

    Platform is "Win32".
    I tried changing the platform to "x64", the symptoms are the same.

    Lance> Maybe there is a limitation there.
    Lance> And it could be better if you could share a simple sample by one-drive here, so that I can check for you directly.

    I set a simple sample on "OneDrive":
    https://1drv.ms/f/s!Asl_gZWRK5JRcITWI3-0oqj7a2s
    The object to observe is "pPortableDeviceManager" in function "communicateWithDevice()"



    Thank you for your help.
    Best regards.

    Monday, April 29, 2019 9:03 AM
  • I reproduced your results on Win 8.1 for a 32 bit build.

    My feeling is that this is not an error but is the result of a stripped pdb for PortableDeviceApi.dll

    For example, notice the difference in the file sizes when comparing the full symbol file generated for a trivial COM dll compared to the stripped version (STestCom.pdb).

    And take a look at the size of the symbol file that was downloaded from the MS symbol server for PortableDeviceApi.dll -

    So I don't think that it is possible to use the debugger to view the object details for the simple reason that they are not present in the symbol file.

    Monday, April 29, 2019 11:14 AM
  • Hi RLWA32, thank you for your answer.

    I would also be happy to get an answer from "Lance Li-MSFT" since he proposed to make a test with a sample code...

    Thank you and best regards.



    Monday, May 6, 2019 8:47 AM
  • Hi LEA,

    Sorry for the delay. I've downloaded your sample and can reproduce the same issue on my side with win10,vs2017.

    Maybe the cause of this issue is like what RLWA32 said, the symbol itself doesn't contain enough info. Thanks to RLWA32! But I'm not sure about this point.

    And since changes in debug=>options seems not to help solve this issue. So I  report this issue to Product Team on DeveloperCommunity, you can check this post.

    Please patitently wait for their feedback and you can vote it or add a comment to follow it. If there have any updates from the product team, I will also update it  here.

    Thanks for your understanding and sorry for this inconvenience. 

    Best Regards

    Lance


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Monday, May 6, 2019 11:03 AM
  • Just as an addendum to @RLWA32's last post: If you need more detailed information about a pdb-file you may consider to use
    dbh.exe
    https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/dbh
    which is part of
    Debugging Tools for Windows (WinDbg, KD, CDB, NTSD)
    https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/

    So e.g. regarding the pdb of PortableDeviceApi.dll  (x64) with PdbSig70 5A60C5DB98B382597519A292340FE0411

    dbh /v PortableDeviceApi.pdb info
    verbose mode on.
    DBGHELP: PortableDeviceApi - public symbols
            PortableDeviceApi.pdb - unmatched
        SizeOfStruct : 0x690
         BaseOfImage : 0x1000000
           ImageSize : 0x1000000
       TimeDateStamp : 0x0
            CheckSum : 0x0
             NumSyms : 0x0
             SymType : SymPdb
          ModuleName : PortableDeviceApi
           ImageName : PortableDeviceApi.pdb
     LoadedImageName : PortableDeviceApi.pdb
       LoadedPdbName : PortableDeviceApi.pdb
               CVSig : 0x0
              CVData :
              PdbSig : 0x0
            PdbSig70 : 0x5a60c5db, 0x98b3, 0x8259, 0x75, 0x19, 0xa2, 0x92, 0x34, 0x0f, 0xe0, 0x41
              PdbAge : 0x1
        PdbUnmatched : true
        DbgUnmatched : false
         LineNumbers : false
       GlobalSymbols : false
            TypeInfo : false
       SourceIndexed : false
       PublicSymbols : true
         MachineType : unknown



    With kind regards
    Tuesday, May 7, 2019 9:13 AM
  • Microsoft closed the issue on Developer Community and advised "This appears to be an issue with Windows PortableDeviceApi symbols. We recommend that you submit the feedback via 'Feedback Hub' application in Windows. Thanks!"
    Friday, May 24, 2019 9:06 PM