llvm.org GIT mirror llvm / a27c909
Minor tweaks to PDB docs - Fix a broken link - Some spelling fixes - Remove an unnecessary "amortized" - Don't say "log(n) random access"; "random access" means O(1) - Make MSF overview a bit more concise Differential Revision: https://reviews.llvm.org/D61196 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359714 91177308-0d34-0410-b5e6-96231b3b80d8 Nico Weber 1 year, 6 months ago
4 changed file(s) with 12 addition(s) and 13 deletion(s). Raw diff Collapse all Expand all
104104
105105 - **PdbDllRbld** - Unknown
106106
107 - **MFCTypeServerIndex** - The length of the :ref:dbi_mfc_type_server_substream
107 - **MFCTypeServerIndex** - The length of the
108 :ref:`dbi_mfc_type_server_substream`.
108109
109110 - **Flags** - A bitfield with the following layout, containing various
110111 information about how the program was built:
285285 within the TPI Hash Stream of the Type Index Offsets Buffer. This is a list of
286286 pairs of uint32_t's where the first value is a :ref:`Type Index `
287287 and the second value is the offset in the type record data of the type with this
288 index. This can be used to do a binary search followed bin a linear search to
289 get amortized O(log n) lookup by type index.
288 index. This can be used to do a binary search followed by a linear search to
289 get O(log n) lookup by type index.
290290
291291 - **HashAdjBufferOffset / HashAdjBufferLength** - The offset and size within
292292 the TPI hash stream of a serialized hash table whose keys are the hash values
307307 of such records (e.g. the length of the array) can be determined by computing the
308308 value ``Header.TypeIndexEnd - Header.TypeIndexBegin``.
309309
310 log(n) random access is provided by way of the Type Index Offsets array (if present)
311 described previously.
310 O(log(n)) access is provided by way of the Type Index Offsets array (if
311 present) described previously.
5959
6060 The MSF Container
6161 -----------------
62 A PDB file is really just a special case of an MSF (Multi-Stream Format) file.
63 An MSF file is actually a miniature "file system within a file". It contains
64 multiple streams (aka files) which can represent arbitrary data, and these
65 streams are divided into blocks which may not necessarily be contiguously
66 laid out within the file (aka fragmented). Additionally, the MSF contains a
67 stream directory (aka MFT) which describes how the streams (files) are laid
68 out within the MSF.
62 A PDB file is an MSF (Multi-Stream Format) file. An MSF file is a "file system
63 within a file". It contains multiple streams (aka files) which can represent
64 arbitrary data, and these streams are divided into blocks which may not
65 necessarily be contiguously laid out within the MSF container file.
66 Additionally, the MSF contains a stream directory (aka MFT) which describes how
67 the streams (files) are laid out within the MSF.
6968
7069 For more information about the MSF container format, stream directory, and
7170 block layout, see :doc:`MsfFile`.
340340 short Padding; // Pad to 4 bytes.
341341 char Reserved[8];
342342 };
343
344343 static_assert(sizeof(SrcHeaderBlockEntry) == 40, "Incorrect struct size!");
345344
346345 } // namespace pdb