Struct pdb::PDB [] [src]

pub struct PDB<'s, S> { /* fields omitted */ }

PDB provides access to the data within a PDB file.

A PDB file is internally a Multi-Stream File (MSF), composed of multiple independent (and usually discontiguous) data streams on-disk. PDB provides lazy access to these data structures, which means the PDB accessor methods usually cause disk accesses.

Methods

impl<'s, S: Source<'s> + 's> PDB<'s, S>
[src]

Create a new PDB for a Source.

open() accesses enough of the source file to find the MSF stream table. This usually involves reading the header, a block near the end of the file, and finally the stream table itself. It does not access or validate any of the contents of the rest of the PDB.

Errors

  • Error::UnimplementedFeature if the PDB file predates ~2002
  • Error::UnrecognizedFileFormat if the Source does not appear to be a PDB file
  • Error::IoError if returned by the Source
  • Error::PageReferenceOutOfRange, Error::InvalidPageSize if the PDB file seems corrupt

Retrieve the TypeInformation for this PDB.

The TypeInformation object owns a SourceView for the type information ("TPI") stream. This is usually the single largest stream of the PDB file.

Errors

  • Error::StreamNotFound if the PDB somehow does not contain the type information stream
  • Error::IoError if returned by the Source
  • Error::PageReferenceOutOfRange if the PDB file seems corrupt
  • Error::InvalidTypeInformationHeader if the type information stream header was not understood

Retrieve the DebugInformation for this PDB.

The DebugInformation object owns a SourceView for the debug information ("DBI") stream.

Errors

  • Error::StreamNotFound if the PDB somehow does not contain a symbol records stream
  • Error::IoError if returned by the Source
  • Error::PageReferenceOutOfRange if the PDB file seems corrupt
  • Error::UnimplementedFeature if the debug information header predates ~1995

Retrieve the global symbol table for this PDB.

The SymbolTable object owns a SourceView for the symbol records stream. This is usually the second-largest stream of the PDB file.

The debug information stream indicates which stream is the symbol records stream, so global_symbols() accesses the debug information stream to read the header unless debug_information() was called first.

Errors

  • Error::StreamNotFound if the PDB somehow does not contain a symbol records stream
  • Error::IoError if returned by the Source
  • Error::PageReferenceOutOfRange if the PDB file seems corrupt

If debug_information() was not already called, global_symbols() will additionally read the debug information header, in which case it can also return:

  • Error::StreamNotFound if the PDB somehow does not contain a debug information stream
  • Error::UnimplementedFeature if the debug information header predates ~1995

Trait Implementations

impl<'s, S: Debug> Debug for PDB<'s, S>
[src]

Formats the value using the given formatter.