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

.debug$S and .debug$T sections in COFF obj files #22

Open
jonwil opened this issue Nov 15, 2016 · 5 comments
Open

.debug$S and .debug$T sections in COFF obj files #22

jonwil opened this issue Nov 15, 2016 · 5 comments

Comments

@jonwil
Copy link

jonwil commented Nov 15, 2016

Is there any documentation on the layout of the .debug$S and .debug$T sections in COFF obj files (as output by the C++ compiler in Visual Studio 2015 specifically) and which of the data structures (from the PDB documentation in this repo or the Windows SDK headers or whatever else) I need if I want to parse this information?

I have read the stuff in this repo but I cant see anything related to .debug$S or .debug$T and I have read the PE COFF specs but they only say "contains debugging information" with no details on their format.

@skochinsky
Copy link

See the description of $$SYMBOLS and $$TYPES in the Microsoft Symbol and Type Information
doc.
There is some additional description in the "VC5.0 Symbolic Debug Information" article available in old MSDN releases. I have an unfinished conversion to Markdown here: https://gist.github.com/skochinsky/2d73bba6bbf9692614cb.
It also references the prior "CV4 Symbolic Debug Information Specification", but I haven't seen a copy of that anywhere (possibly it only exists on paper).

@jonwil
Copy link
Author

jonwil commented Nov 18, 2016

Ended up finding the information I needed in the (released parts of) the source code for cvdump.exe.

@Acu43
Copy link

Acu43 commented Jun 6, 2018

@jonwil Can you share the information you found?

I'm trying to understand the exact layout of .debug$T section.

@jonwil
Copy link
Author

jonwil commented Jun 6, 2018

I can't remember what information I found.

@zjturner
Copy link

zjturner commented Jun 6, 2018

@Acu43 i wrote all of the PDB code in clang, and I'm pretty sure I understand every detail, nook, and crannie of the .debug$T section. I'm happy to answer any questions, but please move the discussion to the llvm-dev mailing list as nowadays it's a much more complete source of truth than this repo (we basically can do everything that the code in this repo can do, plus much more).

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

4 participants