From a1497686e1444e4343a2744623f574bc0835748d Mon Sep 17 00:00:00 2001 From: Amogh Gulati <34085119+amogh-gulati@users.noreply.github.com> Date: Tue, 30 Oct 2018 01:00:51 +0530 Subject: [PATCH 1/2] Update README.md some suggested improvements --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7107811..ce7e93b 100644 --- a/README.md +++ b/README.md @@ -17,12 +17,12 @@ The PDB format has not been officially documented, presenting a challenge for ot toolsets (such as Clang/LLVM) that want to work with Windows or the Visual Studio debugger. We want to help the Open Source compilers to get onto the Windows platform. -The majority of content on this repo is presented as actual source files from the VC++ compiler +The majority of content on this repository is presented as actual source files from the VC++ compiler toolset. Source code is the ultimate documentation :-) We hope that you will find it helpful. If you find that you need other information to successfully complete your project, please enter an [Issue](https://github.com/microsoft/microsoft-pdb/issues) letting us know what information you need. -##Start here +

Start here

The file pdb.h (on in langapi), provides the API surface for mscorpdb.dll, which we ship with every compiler and toolset. Important points: @@ -36,7 +36,7 @@ A tool that I thought we also ship that would easily verify your “empty” PDB So in summary, by using the externally defined function entry points in pdb.h you can call into mscorpdb.dll. -##What is a PDB +

What is a PDB


PDBs are files with multiple ‘streams’ of information in them. You can almost assume each stream as an individual file, except that storing them as individual files is wasteful and inconvenient, hence this multiple streams approach. PDB streams are not NTFS streams though. They can be implemented as NTFS streams, but since they are to be made available on Win9X as well, they use a home brewed implementation. The implementation allows a primitive form of two-phase commit protocol. The writers of PDB files write what ever they want to in PDBs, but it won’t be committed until an explicit commit is issued. This allows the clients quite a bit of flexibility - say for example, a compiler can keep on writing information, and just not commit it, if it encounters an error in users’ source code. From 42b3929d05e7fd1c5024cd4531d199b68ff6332a Mon Sep 17 00:00:00 2001 From: Amogh Gulati <34085119+amogh-gulati@users.noreply.github.com> Date: Tue, 30 Oct 2018 01:52:37 +0530 Subject: [PATCH 2/2] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ce7e93b..98c64d5 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ toolset. Source code is the ultimate documentation :-) We hope that you will fin find that you need other information to successfully complete your project, please enter an [Issue](https://github.com/microsoft/microsoft-pdb/issues) letting us know what information you need. -

Start here

+## Start here The file pdb.h (on in langapi), provides the API surface for mscorpdb.dll, which we ship with every compiler and toolset. Important points: @@ -36,7 +36,7 @@ A tool that I thought we also ship that would easily verify your “empty” PDB So in summary, by using the externally defined function entry points in pdb.h you can call into mscorpdb.dll. -

What is a PDB


+## What is a PDB PDBs are files with multiple ‘streams’ of information in them. You can almost assume each stream as an individual file, except that storing them as individual files is wasteful and inconvenient, hence this multiple streams approach. PDB streams are not NTFS streams though. They can be implemented as NTFS streams, but since they are to be made available on Win9X as well, they use a home brewed implementation. The implementation allows a primitive form of two-phase commit protocol. The writers of PDB files write what ever they want to in PDBs, but it won’t be committed until an explicit commit is issued. This allows the clients quite a bit of flexibility - say for example, a compiler can keep on writing information, and just not commit it, if it encounters an error in users’ source code.