PDB files contain information on types, classes, routines, and other constructs. The items on routines, for example, provide the following details. Applications access this information via the DUCTAPE API.
ro#[routineID] | < name of routine > | |
rloc | < fileID > < line > < column > | # location |
[ | ||
rclass | < classID > |
# parent class |
racs | < pub | prot | priv > | # access |
OR | ||
rnspace | < namespaceID > | # parent namespace |
] | ||
rsig | < typeID > | # signature |
rlink | < no | internal | C++ | C > | # linkage |
rstore | < ext | stat | auto | NA | asm > | # storage class |
rstatic | < boolean > | # is static function? |
rkind | < ctor | dtor | conv | op > | # special kind |
rvirt | < no | virt | pure> | # virtuality |
rcrvo | < boolean > | # is covariant return virtual override? |
rinline | < boolean > | # is inline? |
rcgen | < boolean > | # is compiler generated? |
rexpl | < boolean > | # is explicit ctor? |
rtempl | < templateID or boolean > | # ID if template instance; boolean if specialized |
rspecl | < boolean > | # is specialized? |
rcall [...] | < routineID > < no | virt > < fileID > < line > < column > | # callees |
rpos | < start of return type > < last token before "{" > < "{" > < "}" > |