]> granicus.if.org Git - llvm/commitdiff
PDB docs: Delete trailing whitespace, wrap to 80 cols
authorNico Weber <nicolasweber@gmx.de>
Sat, 22 Jun 2019 11:23:01 +0000 (11:23 +0000)
committerNico Weber <nicolasweber@gmx.de>
Sat, 22 Jun 2019 11:23:01 +0000 (11:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364131 91177308-0d34-0410-b5e6-96231b3b80d8

docs/PDB/HashTable.rst
docs/PDB/ModiStream.rst
docs/PDB/MsfFile.rst
docs/PDB/TpiStream.rst
docs/PDB/index.rst

index eb7abbd51075673a07f81cbf637af2fc10c41bf3..581ec598791c1ef2c0d40e50b9ea43057a932566 100644 (file)
@@ -47,16 +47,16 @@ On-Disk Format
   .--------------------.                       ─╯
 
 - **Size** - The number of values contained in the hash table.
-  
+
 - **Capacity** - The number of buckets in the hash table.  Producers should
   maintain a load factor of no greater than ``2/3*Capacity+1``.
-  
+
 - **Present Bit Vector** - A serialized bit vector which contains information
   about which buckets have valid values.  If the bucket has a value, the
   corresponding bit will be set, and if the bucket doesn't have a value (either
   because the bucket is empty or because the value is a tombstone value) the bit
   will be unset.
-  
+
 - **Deleted Bit Vector** - A serialized bit vector which contains information
   about which buckets have tombstone values.  If the entry in this bucket is
   deleted, the bit will be set, otherwise it will be unset.
@@ -88,8 +88,8 @@ The bit vectors indicating the status of each bucket are serialized as follows:
   |       Word_N       |         │
   .--------------------.        ─╯
 
-The words, when viewed as a contiguous block of bytes, represent a bit vector with
-the following layout:
+The words, when viewed as a contiguous block of bytes, represent a bit vector
+with the following layout:
 
 .. code-block:: none
 
index 8104c5308b7bde47ca02d213059f5eb6b046837e..8905da5894576865a0071390cb7b00f5133b3c7a 100644 (file)
@@ -34,7 +34,7 @@ A modi stream is laid out as follows:
     uint8_t Symbols[SymbolSize-4];
     uint8_t C11LineInfo[C11Size];
     uint8_t C13LineInfo[C13Size];
-    
+
     uint32_t GlobalRefsSize;
     uint8_t GlobalRefs[GlobalRefsSize];
   };
@@ -45,11 +45,11 @@ A modi stream is laid out as follows:
   meaning that this module has C13 line information (as opposed to C11 line
   information).  A corollary of this is that we expect to only ever see
   C13 line info, and that we do not understand the format of C11 line info.
-  
+
 - **Symbols** - The :ref:`CodeView Symbol Substream <modi_symbol_substream>`.
   ``SymbolSize`` is equal to the value of ``SymByteSize`` for the
-  corresponding module's entry in the :ref:`Module Info Substream <dbi_mod_info_substream>`
-  of the :doc:`DBI Stream <DbiStream>`.
+  corresponding module's entry in the :ref:`Module Info Substream
+  <dbi_mod_info_substream>` of the :doc:`DBI Stream <DbiStream>`.
 
 - **C11LineInfo** - A block containing CodeView line information in C11
   format.  ``C11Size`` is equal to the value of ``C11ByteSize`` from the
@@ -58,13 +58,13 @@ A modi stream is laid out as follows:
   information is not present.  As mentioned previously, the format of
   C11 line info is not understood and we assume all line in modern PDBs
   to be in C13 format.
-  
+
 - **C13LineInfo** - A block containing CodeView line information in C13
   format.  ``C13Size`` is equal to the value of ``C13ByteSize`` from the
   :ref:`Module Info Substream <dbi_mod_info_substream>` of the
   :doc:`DBI Stream <DbiStream>`.  If this value is ``0``, then C13 line
   information is not present.
-  
+
 - **GlobalRefs** - The meaning of this substream is not understood.
 
 .. _modi_symbol_substream:
index a53ebe3e884f461e089fcada4197a96fb7e78a7f..09eba4a84b78a56db756c4680d62727e96f58e7f 100644 (file)
@@ -70,14 +70,14 @@ follows:
   sizes of 4KiB, and all further discussion assumes a block size of 4KiB.
 - **FreeBlockMapBlock** - The index of a block within the file, at which begins
   a bitfield representing the set of all blocks within the file which are "free"
-  (i.e. the data within that block is not used).  See :ref:`msf_freeblockmap` for
-  more information.
+  (i.e. the data within that block is not used).  See :ref:`msf_freeblockmap`
+  for more information.
   **Important**: ``FreeBlockMapBlock`` can only be ``1`` or ``2``!
-- **NumBlocks** - The total number of blocks in the file.  ``NumBlocks * BlockSize``
-  should equal the size of the file on disk.
-- **NumDirectoryBytes** - The size of the stream directory, in bytes.  The stream
-  directory contains information about each stream's size and the set of blocks
-  that it occupies.  It will be described in more detail later.
+- **NumBlocks** - The total number of blocks in the file.  ``NumBlocks *
+  BlockSize`` should equal the size of the file on disk.
+- **NumDirectoryBytes** - The size of the stream directory, in bytes.  The
+  stream directory contains information about each stream's size and the set of
+  blocks that it occupies.  It will be described in more detail later.
 - **BlockMapAddr** - The index of a block within the MSF file.  At this block is
   an array of ``ulittle32_t``'s listing the blocks that the stream directory
   resides on.  For large MSF files, the stream directory (which describes the
@@ -85,7 +85,8 @@ follows:
   result, this extra layer of indirection is introduced, whereby this block
   contains the list of blocks that the stream directory occupies, and the stream
   directory itself can be stitched together accordingly.  The number of
-  ``ulittle32_t``'s in this array is given by ``ceil(NumDirectoryBytes / BlockSize)``.
+  ``ulittle32_t``'s in this array is given by ``ceil(NumDirectoryBytes /
+  BlockSize)``.
 
 .. _msf_freeblockmap:
 
@@ -156,9 +157,10 @@ like:
     };
   };
 
-In total, this occupies ``15 * 4 = 60`` bytes, so ``SuperBlock->NumDirectoryBytes``
-would equal ``60``, and ``SuperBlock->BlockMapAddr`` would be an array of one
-``ulittle32_t``, since ``60 <= SuperBlock->BlockSize``.
+In total, this occupies ``15 * 4 = 60`` bytes, so
+``SuperBlock->NumDirectoryBytes`` would equal ``60``, and
+``SuperBlock->BlockMapAddr`` would be an array of one ``ulittle32_t``, since
+``60 <= SuperBlock->BlockSize``.
 
 Note also that the streams are discontiguous, and that part of stream 3 is in the
 middle of part of stream 2.  You cannot assume anything about the layout of the
index 8f6fd12daf22eb33f3b1cb4705d529986c69b81b..d0565e269ff8deff9fa31e4555b9a99eac8f1d28 100644 (file)
@@ -25,7 +25,7 @@ pass.
 
 .. important::
    Type records form a topologically sorted DAG (directed acyclic graph).
-   
+
 .. _tpi_ipi:
 
 TPI vs IPI Stream
@@ -188,24 +188,22 @@ bitmask which can be decomposed as follows:
     NearPointer64 = 6, // 64 bit near pointer
     NearPointer128 = 7 // 128 bit near pointer
   };
-  
+
 Note that for pointers, the bitness is represented in the mode.  So a ``void*``
-would have a type index with ``Mode=NearPointer32, Kind=Void`` if built for 32-bits
-but a type index with ``Mode=NearPointer64, Kind=Void`` if built for 64-bits.
+would have a type index with ``Mode=NearPointer32, Kind=Void`` if built for
+32-bits but a type index with ``Mode=NearPointer64, Kind=Void`` if built for
+64-bits.
 
-By convention, the type index for ``std::nullptr_t`` is constructed the same way
-as the type index for ``void*``, but using the bitless enumeration value
+By convention, the type index for ``std::nullptr_t`` is constructed the same
+way as the type index for ``void*``, but using the bitless enumeration value
 ``NearPointer``.
 
-
-
 .. _tpi_header:
 
 Stream Header
 =============
 At offset 0 of the TPI Stream is a header with the following layout:
 
-
 .. code-block:: c++
 
   struct TpiStreamHeader {
@@ -222,14 +220,14 @@ At offset 0 of the TPI Stream is a header with the following layout:
 
     int32_t HashValueBufferOffset;
     uint32_t HashValueBufferLength;
-    
+
     int32_t IndexOffsetBufferOffset;
     uint32_t IndexOffsetBufferLength;
 
     int32_t HashAdjBufferOffset;
     uint32_t HashAdjBufferLength;
   };
-  
+
 - **Version** - A value from the following enum.
 
 .. code-block:: c++
@@ -248,46 +246,49 @@ another value be observed, the layout described by this document may not be
 accurate.
 
 - **HeaderSize** - ``sizeof(TpiStreamHeader)``
-  
+
 - **TypeIndexBegin** - The numeric value of the type index representing the
-  first type record in the TPI stream.  This is usually the value 0x1000 as type
-  indices lower than this are reserved (see :ref:`Type Indices <type_indices>` for
+  first type record in the TPI stream.  This is usually the value 0x1000 as
+  type indices lower than this are reserved (see :ref:`Type Indices
+  <type_indices>` for
   a discussion of reserved type indices).
-  
+
 - **TypeIndexEnd** - One greater than the numeric value of the type index
-  representing the last type record in the TPI stream.  The total number of type
-  records in the TPI stream can be computed as ``TypeIndexEnd - TypeIndexBegin``.
-  
-- **TypeRecordBytes** - The number of bytes of type record data following the header.
-  
-- **HashStreamIndex** - The index of a stream which contains a list of hashes for
-  every type record.  This value may be -1, indicating that hash information is not
-  present.  In practice a valid stream index is always observed, so any producer
-  implementation should be prepared to emit this stream to ensure compatibility with
-  tools which may expect it to be present.
-  
-- **HashAuxStreamIndex** - Presumably the index of a stream which contains a separate
-  hash table, although this has not been observed in practice and it's unclear what it
-  might be used for.
-  
+  representing the last type record in the TPI stream.  The total number of
+  type records in the TPI stream can be computed as ``TypeIndexEnd -
+  TypeIndexBegin``.
+
+- **TypeRecordBytes** - The number of bytes of type record data following the
+  header.
+
+- **HashStreamIndex** - The index of a stream which contains a list of hashes
+  for every type record.  This value may be -1, indicating that hash
+  information is not present.  In practice a valid stream index is always
+  observed, so any producer implementation should be prepared to emit this
+  stream to ensure compatibility with tools which may expect it to be present.
+
+- **HashAuxStreamIndex** - Presumably the index of a stream which contains a
+  separate hash table, although this has not been observed in practice and it's
+  unclear what it might be used for.
+
 - **HashKeySize** - The size of a hash value (usually 4 bytes).
 
-- **NumHashBuckets** - The number of buckets used to generate the hash values in the
-  aforementioned hash streams.
+- **NumHashBuckets** - The number of buckets used to generate the hash values
+  in the aforementioned hash streams.
 
 - **HashValueBufferOffset / HashValueBufferLength** - The offset and size within
-  the TPI Hash Stream of the list of hash values.  It should be assumed that there
-  are either 0 hash values, or a number equal to the number of type records in the
-  TPI stream (``TypeIndexEnd - TypeEndBegin``).  Thus, if ``HashBufferLength`` is
-  not equal to ``(TypeIndexEnd - TypeEndBegin) * HashKeySize`` we can consider the
-  PDB malformed.
+  the TPI Hash Stream of the list of hash values.  It should be assumed that
+  there are either 0 hash values, or a number equal to the number of type
+  records in the TPI stream (``TypeIndexEnd - TypeEndBegin``).  Thus, if
+  ``HashBufferLength`` is not equal to ``(TypeIndexEnd - TypeEndBegin) *
+  HashKeySize`` we can consider the PDB malformed.
 
 - **IndexOffsetBufferOffset / IndexOffsetBufferLength** - The offset and size
-  within the TPI Hash Stream of the Type Index Offsets Buffer.  This is a list of
-  pairs of uint32_t's where the first value is a :ref:`Type Index <type_indices>`
-  and the second value is the offset in the type record data of the type with this
-  index.  This can be used to do a binary search followed by a linear search to
-  get O(log n) lookup by type index.
+  within the TPI Hash Stream of the Type Index Offsets Buffer.  This is a list
+  of pairs of uint32_t's where the first value is a :ref:`Type Index
+  <type_indices>` and the second value is the offset in the type record data of
+  the type with this index.  This can be used to do a binary search followed by
+  a linear search to get O(log n) lookup by type index.
 
 - **HashAdjBufferOffset / HashAdjBufferLength** - The offset and size within
   the TPI hash stream of a serialized hash table whose keys are the hash values
@@ -303,10 +304,11 @@ accurate.
 
 CodeView Type Record List
 =========================
-Following the header, there are ``TypeRecordBytes`` bytes of data that represent a
-variable length array of :doc:`CodeView type records <CodeViewTypes>`.  The number
-of such records (e.g. the length of the array) can be determined by computing the
-value ``Header.TypeIndexEnd - Header.TypeIndexBegin``.
+Following the header, there are ``TypeRecordBytes`` bytes of data that
+represent a variable length array of :doc:`CodeView type records
+<CodeViewTypes>`.  The number of such records (e.g. the length of the array)
+can be determined by computing the value ``Header.TypeIndexEnd -
+Header.TypeIndexBegin``.
 
 O(log(n)) access is provided by way of the Type Index Offsets array (if
 present) described previously.
index 8425b294442c7985345bd2dd2d5e2bf63fe0dcdf..b70eca75baea0a7196e1312e821f937abb918181 100644 (file)
@@ -44,7 +44,7 @@ File Layout
 
 .. toctree::
    :hidden:
-   
+
    MsfFile
    PdbStream
    TpiStream
@@ -132,7 +132,7 @@ PDB file is as follows:
 
 More information about the structure of each of these can be found on the
 following pages:
-   
+
 :doc:`PdbStream`
    Information about the PDB Info Stream and how it is used to match PDBs to EXEs.
 
@@ -140,12 +140,13 @@ following pages:
    Information about the TPI stream and the CodeView records contained within.
 
 :doc:`DbiStream`
-   Information about the DBI stream and relevant substreams including the Module Substreams,
-   source file information, and CodeView symbol records contained within.
+   Information about the DBI stream and relevant substreams including the
+   Module Substreams, source file information, and CodeView symbol records
+   contained within.
 
 :doc:`ModiStream`
-   Information about the Module Information Stream, of which there is one for each compilation
-   unit and the format of symbols contained within.
+   Information about the Module Information Stream, of which there is one for
+   each compilation unit and the format of symbols contained within.
 
 :doc:`PublicStream`
    Information about the Public Symbol Stream.
@@ -154,8 +155,9 @@ following pages:
    Information about the Global Symbol Stream.
 
 :doc:`HashTable`
-   Information about the serialized hash table format used internally to represent things such
-   as the Named Stream Map and the Hash Adjusters in the :doc:`TPI/IPI Stream <TpiStream>`.
+   Information about the serialized hash table format used internally to
+   represent things such as the Named Stream Map and the Hash Adjusters in the
+   :doc:`TPI/IPI Stream <TpiStream>`.
 
 CodeView
 ========