Struct pdb_addr2line::TypeFormatter [−][src]
pub struct TypeFormatter<'t> { /* fields omitted */ }
Expand description
Allows printing function signatures, for example for use in stack traces.
Procedure symbols in PDBs usually have a name string which only includes the function name,
and no function arguments. Instead, the arguments need to be obtained from the symbol’s type
information. TypeFormatter
handles that.
The same is true for “inlinee” functions - these are referenced by their pdb::IdIndex
, and their
IdData
’s name string again only contains the raw function name but no arguments and also
no namespace or class name. TypeFormatter
handles those, too, in TypeFormatter::write_id
.
Implementations
pub fn new(
debug_info: &DebugInformation<'_>,
type_info: &'t TypeInformation<'_>,
id_info: &'t IdInformation<'_>,
flags: TypeFormatterFlags
) -> Result<Self, Error>
[src]
pub fn new(
debug_info: &DebugInformation<'_>,
type_info: &'t TypeInformation<'_>,
id_info: &'t IdInformation<'_>,
flags: TypeFormatterFlags
) -> Result<Self, Error>
[src]Create a new TypeFormatter with the help of various PDB streams.
Get the size, in bytes, of the type at index
.
Write out the function or method signature, including return type (if requested),
namespace and/or class qualifiers, and arguments.
If the TypeIndex is 0, then only the raw name is emitted. In that case, the
name may need to go through additional demangling / “undecorating”, but this
is the responsibility of the caller.
This method is used for ProcedureSymbol
s.
Auto Trait Implementations
impl<'t> RefUnwindSafe for TypeFormatter<'t>
impl<'t> Send for TypeFormatter<'t>
impl<'t> Sync for TypeFormatter<'t>
impl<'t> Unpin for TypeFormatter<'t>
impl<'t> UnwindSafe for TypeFormatter<'t>