Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. COM
  4. How can I filter unwanted unwanted types(not in my code) from DIA SDK?

How can I filter unwanted unwanted types(not in my code) from DIA SDK?

Scheduled Pinned Locked Moved COM
questionc++
6 Posts 2 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    glitteringsound
    wrote on last edited by
    #1

    Hello, I am using DIA SDK for extracting user defined complex types(just I used in my C++ code). I don't know all my types(used in code) before extracting from DIA SDK with names and members(data members& functions). It shows everything, I mean all those user defined types which I don't need at all(i.e kernel types and enums & structs). I only want to enumerate those which are strictly used in my code(i.e in Dll/EXE in any format). Is there is any way out at all by which we can restrict those unwanted (Kernel source types or MSFT specific source code) types to appear? Regards Usman

    L 1 Reply Last reply
    0
    • G glitteringsound

      Hello, I am using DIA SDK for extracting user defined complex types(just I used in my C++ code). I don't know all my types(used in code) before extracting from DIA SDK with names and members(data members& functions). It shows everything, I mean all those user defined types which I don't need at all(i.e kernel types and enums & structs). I only want to enumerate those which are strictly used in my code(i.e in Dll/EXE in any format). Is there is any way out at all by which we can restrict those unwanted (Kernel source types or MSFT specific source code) types to appear? Regards Usman

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      glitteringsound wrote:

      It shows everything

      What does this mean, what is it that does the showing? You need to explain your problem a bit better if you want a suggestion to help you.

      Just say 'NO' to evaluated arguments for diadic functions! Ash

      G 1 Reply Last reply
      0
      • L Lost User

        glitteringsound wrote:

        It shows everything

        What does this mean, what is it that does the showing? You need to explain your problem a bit better if you want a suggestion to help you.

        Just say 'NO' to evaluated arguments for diadic functions! Ash

        G Offline
        G Offline
        glitteringsound
        wrote on last edited by
        #3

        I statted completely.. Rephrasing..It shows every user defined type that's not used or declare inside my code. I mean If I have declared and use "MyClass" as class in my dll/exe then it should enumerate only this. It enumerates all those UDTs(User Defined Types)which 's not used or declared in my binary(dll/exe).Those comes from kernel modules and libraries. As we know that every program implicitely linked with some kernel imports(i.e kernel32.lib,user32.lib, gdi32.lib, winspool.lib ,comdlg32.lib....). I only need strictly those user defined types those I declared inside my source code.For this I can give or hardcode that user defined type to which I want to enumerate. But this is not the solution of the problem. Some I don't know earlier the name of type used in my source code. In that case I need list of all of those types which I used or declared in my source code.

        L 1 Reply Last reply
        0
        • G glitteringsound

          I statted completely.. Rephrasing..It shows every user defined type that's not used or declare inside my code. I mean If I have declared and use "MyClass" as class in my dll/exe then it should enumerate only this. It enumerates all those UDTs(User Defined Types)which 's not used or declared in my binary(dll/exe).Those comes from kernel modules and libraries. As we know that every program implicitely linked with some kernel imports(i.e kernel32.lib,user32.lib, gdi32.lib, winspool.lib ,comdlg32.lib....). I only need strictly those user defined types those I declared inside my source code.For this I can give or hardcode that user defined type to which I want to enumerate. But this is not the solution of the problem. Some I don't know earlier the name of type used in my source code. In that case I need list of all of those types which I used or declared in my source code.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #4

          glitteringsound wrote:

          It shows every user defined type

          Once again what do you mean by 'It' here. What exactly are you doing (or is something else doing) that shows whatever it is that you do not want to see. You also mention enumeration, again who or what is doing the enumerating and what are they enumerating. Sorry but I am very confused.

          Just say 'NO' to evaluated arguments for diadic functions! Ash

          G 1 Reply Last reply
          0
          • L Lost User

            glitteringsound wrote:

            It shows every user defined type

            Once again what do you mean by 'It' here. What exactly are you doing (or is something else doing) that shows whatever it is that you do not want to see. You also mention enumeration, again who or what is doing the enumerating and what are they enumerating. Sorry but I am very confused.

            Just say 'NO' to evaluated arguments for diadic functions! Ash

            G Offline
            G Offline
            glitteringsound
            wrote on last edited by
            #5

            DIA SDK is the API available by Microsoft under C:\Program Files\Microsoft Visual Studio 10.0\DIA SDK\... It always gives you the debugging information 2 or 3 times more than that of Dbghelp and DbgEng etc. It enumerates pdbs and allows the users to extract information like 1 - Types(names) & base class details. 2 - Members(Their names and full signature details, parameter offsets and methods RVA) 3 - Type data members. and lot more what ever you required. My problem is that yes I want to enumerate all these things. But basically my problem is that I don't want the details(which I mentioned above ) of all those types which are not defined in my code.What It does now , it starts from kernel modules (Dll's) , enumerates the details(i.e types , method associated with that type and so on..) and trail down to the end of the user defined types(classes',structs and enums). I only want my types (which are strictly defined in my code) to be enlist. I don't want all kernel related types.i.e contained inside (MSCVP100.dll,KERNEL32.dll,User32.dll,Ole32.dll,OleAut32.dll). If still any confusion is there let me know then..

            L 1 Reply Last reply
            0
            • G glitteringsound

              DIA SDK is the API available by Microsoft under C:\Program Files\Microsoft Visual Studio 10.0\DIA SDK\... It always gives you the debugging information 2 or 3 times more than that of Dbghelp and DbgEng etc. It enumerates pdbs and allows the users to extract information like 1 - Types(names) & base class details. 2 - Members(Their names and full signature details, parameter offsets and methods RVA) 3 - Type data members. and lot more what ever you required. My problem is that yes I want to enumerate all these things. But basically my problem is that I don't want the details(which I mentioned above ) of all those types which are not defined in my code.What It does now , it starts from kernel modules (Dll's) , enumerates the details(i.e types , method associated with that type and so on..) and trail down to the end of the user defined types(classes',structs and enums). I only want my types (which are strictly defined in my code) to be enlist. I don't want all kernel related types.i.e contained inside (MSCVP100.dll,KERNEL32.dll,User32.dll,Ole32.dll,OleAut32.dll). If still any confusion is there let me know then..

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #6

              I have not used DIA but looking at the documentation there does not seem to be an obvious solution to your problem. I suspect part of the problem is the extra information that is added to the PDB when you include a header file that defines Windows functions; everything is included in the PDB even if it is not directly referenced in the final .exe file. There seem to be lots of pointers in the section on Symbols and Symbol Tags but no direct suggestion relevant to your question. Since this is a rather specialised subject you may be better trying one of the Microsoft forums that deal with the subject.

              Just say 'NO' to evaluated arguments for diadic functions! Ash

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups