Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.

Missing many headers needed by cvdump #14

Open
8 tasks
SamB opened this issue Apr 11, 2016 · 2 comments
Open
8 tasks

Missing many headers needed by cvdump #14

SamB opened this issue Apr 11, 2016 · 2 comments

Comments

@SamB
Copy link

SamB commented Apr 11, 2016

I know the README.md already says that the repository won't yet build, but I figured something more specific might be useful.

At least these headers are missing:

  • verstamp.h: used by the .rc file
  • version.h and vcver.h: Most likely not very necessary; vcver.h in particular seems irrelevant for non-integrated builds
  • cvexefmt.h: "format of CodeView information in exe" (there are some old versions floating around the web, though; evidently it has appeared in samples before)
  • _winnt2.h: Presumably a bastardized (or simply extra-fresh) version of winnt.h? We might be able to get away with using a sufficiently-fresh copy of winnt.h proper
  • ecoff.h
  • safestk.h: I'm extra certain we need this one
  • map_t.h: This one, too
  • armregs.h and arm64regs.h: I'm a bit surprised we're not missing more of these, but it looks like the symbol names for all other arches are hardcoded in dumpsym7.cpp.

(At least the register table for IA64 isn't indexed by the CV register numbers; its too bad that C++ still doesn't have designated initializers like C does...)

And also these items mentioned in cvdump.nativeproj:

    <CCompile Include="..\..\..\misc\utf8.c"/>
    <Link Include="$(OutputLibPath)mspdb$(VCToolsProdVerSuffix)$(BuildSuffix)-libcmt.lib">
        <ProjectReference>$(VCToolsRootPath)\PDB\lic\lic.nativeproj</ProjectReference>
    </Link>
    <Link Include="$(OutputLibPath)msobj$(VCToolsProdVerSuffix)$(BuildSuffix)-libcmt.lib">
        <ProjectReference>$(VCToolsRootPath)\PDB\objfile\lic\lic.nativeproj</ProjectReference>
    </Link>
    <Link Include="$(OutputLibPath)msdia$(VCToolsProdVerSuffix)$(BuildSuffix)-libcmt.lib">
        <ProjectReference>$(VCToolsRootPath)\PDB\dia2\lic\lic.nativeproj</ProjectReference>
    </Link>
@skochinsky
Copy link

libcmt.lib is the C runtime library which should be included with the compiler (maybe the project needs to be fixed though).

@jonwil
Copy link

jonwil commented Jun 27, 2017

Reading the above fragment it looks like its linking with 3 static libraries that seem to be static versions of mspdbxxx.dll, msobjxxx.dll and msdiaxxx.dll (where xxx is whatever the value of VCToolsProdVerSuffix is)
So we would need the project files and full source code to those 3 libraries (if we wanted to rebuild cvdump.exe) or at the very least some binaries of those libraries we can play with (along with all the missing header files)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants