#include <ctype.h>#include <iostream>#include "symutil.h"#include "Symtab.h"#include "Symbol.h"#include "Function.h"#include "Variable.h"#include "Module.h"#include "Collections.h"#include "annotations.h"#include "common/h/headers.h"#include "Type-mem.h"#include "debug.h"Go to the source code of this file.
Namespaces | |
| namespace | Dyninst |
| namespace | Dyninst::SymtabAPI |
Defines | |
| #define | DMGL_PARAMS (1 << 0) |
| #define | DMGL_ANSI (1 << 1) |
| #define | DMGL_VERBOSE (1 << 3) |
Functions | |
| std::string | Dyninst::SymtabAPI::parseStabString (Module *mod, int linenum, char *stabstr, int framePtr, typeCommon *commonBlock=NULL) |
| static int | parseSymDesc (char *stabstr, int &cnt) |
| static Type * | parseConstantUse (Module *, char *stabstr, int &cnt) |
| static char * | parseTypeDef (Module *, char *stabstr, const char *name, int ID, unsigned int sizeHint=0) |
| static int | parseTypeUse (Module *, char *&stabstr, int &cnt, const char *name) |
| static bool | isSymId (char ch) |
| static std::string | getIdentifier (char *stabstr, int &cnt, bool stopOnSpace=false) |
| std::string | convertCharToString (const char *ptr) |
| void | vectorNameMatchKLUDGE (Module *mod, char *demangled_sym, std::vector< Function * > &bpfv, std::vector< int > &matches) |
| Function * | mangledNameMatchKLUDGE (const char *pretty, const char *mangled, Module *mod) |
| char * | getFieldName (char *stabstr, int &cnt) |
| static char * | parseCrossRef (typeCollection *moduleTypes, const char *, int ID, char *stabstr, int &cnt) |
| static Type * | parseArrayDef (Module *mod, const char *name, int ID, char *&stabstr, int &cnt, unsigned int sizeHint) |
| int | guessSize (const char *low, const char *hi) |
| static char * | parseRangeType (Module *mod, const char *name, int ID, char *stabstr, unsigned int sizeHint=0) |
| static char * | parseAttrType (Module *mod, const char *name, int ID, char *stabstr, int &cnt) |
| static char * | parseRefType (Module *mod, const char *name, int ID, char *stabstr, int &cnt) |
| void | addBaseClassToClass (Module *mod, int baseID, fieldListType *newType, int) |
| static char * | parseFieldList (Module *mod, fieldListType *newType, char *stabstr, bool sunCPlusPlus) |
| static char * | parseCPlusPlusInfo (Module *mod, char *stabstr, const char *mangledName, int ID) |
Variables | |
| std::string | symt_current_func_name |
| std::string | symt_current_mangled_func_name |
| Function * | symt_current_func |
| static std::string | currentRawSymbolName |
| #define DMGL_ANSI (1 << 1) |
Definition at line 35 of file parseStab.C.
| #define DMGL_PARAMS (1 << 0) |
Definition at line 34 of file parseStab.C.
| #define DMGL_VERBOSE (1 << 3) |
Definition at line 36 of file parseStab.C.
| void addBaseClassToClass | ( | Module * | mod, | |
| int | baseID, | |||
| fieldListType * | newType, | |||
| int | ||||
| ) |
Definition at line 1685 of file parseStab.C.
References Dyninst::SymtabAPI::fieldListType::addField(), Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), Dyninst::SymtabAPI::Type::decrRefCount(), Dyninst::SymtabAPI::Module::fileName(), Dyninst::SymtabAPI::typeCollection::findType(), and Dyninst::SymtabAPI::visUnknown.
Referenced by parseCPlusPlusInfo(), and parseFieldList().
| std::string convertCharToString | ( | const char * | ptr | ) |
Definition at line 81 of file parseStab.C.
| char* getFieldName | ( | char * | stabstr, | |
| int & | cnt | |||
| ) |
Definition at line 1004 of file parseStab.C.
Referenced by parseFieldList().
| std::string getIdentifier | ( | char * | stabstr, | |
| int & | cnt, | |||
| bool | stopOnSpace = false | |||
| ) | [static] |
Definition at line 932 of file parseStab.C.
Referenced by parseCPlusPlusInfo(), parseCrossRef(), parseFieldList(), Dyninst::SymtabAPI::parseStabString(), and parseTypeDef().
| int guessSize | ( | const char * | low, | |
| const char * | hi | |||
| ) |
Definition at line 1204 of file parseStab.C.
Referenced by parseRangeType().
| bool isSymId | ( | char | ch | ) | [inline, static] |
Definition at line 876 of file parseStab.C.
Referenced by parseFieldList(), Dyninst::SymtabAPI::parseStabString(), and parseTypeDef().
Definition at line 122 of file parseStab.C.
References Dyninst::SymtabAPI::Module::exec(), Dyninst::SymtabAPI::Symtab::findFunctionsByName(), Dyninst::SymtabAPI::Symtab::isNativeCompiler(), Dyninst::SymtabAPI::lang_Fortran_with_pretty_debug, Dyninst::SymtabAPI::Module::language(), P_cplus_demangle(), and vectorNameMatchKLUDGE().
Referenced by Dyninst::SymtabAPI::parseStabString().
| static Type* parseArrayDef | ( | Module * | mod, | |
| const char * | name, | |||
| int | ID, | |||
| char *& | stabstr, | |||
| int & | cnt, | |||
| unsigned int | sizeHint | |||
| ) | [static] |
Definition at line 1101 of file parseStab.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), convertCharToString(), Dyninst::SymtabAPI::typeCollection::findOrCreateType(), parseSymDesc(), parseTypeDef(), and parseTypeUse().
Referenced by parseTypeDef().
| static char* parseAttrType | ( | Module * | mod, | |
| const char * | name, | |||
| int | ID, | |||
| char * | stabstr, | |||
| int & | cnt | |||
| ) | [static] |
Definition at line 1542 of file parseStab.C.
References parseSymDesc(), and parseTypeDef().
Referenced by parseTypeDef().
Definition at line 2505 of file parseStab.C.
References Dyninst::SymtabAPI::typeCollection::findType().
Referenced by Dyninst::SymtabAPI::parseStabString().
| static char* parseCPlusPlusInfo | ( | Module * | mod, | |
| char * | stabstr, | |||
| const char * | mangledName, | |||
| int | ID | |||
| ) | [static] |
Definition at line 1945 of file parseStab.C.
References addBaseClassToClass(), Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), convertCharToString(), currentRawSymbolName, Dyninst::SymtabAPI::dataStructure, Dyninst::SymtabAPI::dataTypeClass, Dyninst::SymtabAPI::dataUnion, Dyninst::SymtabAPI::Type::decrRefCount(), Dyninst::SymtabAPI::Module::exec(), Dyninst::SymtabAPI::typeCollection::findType(), getIdentifier(), Dyninst::SymtabAPI::Symtab::isNativeCompiler(), P_cplus_demangle(), parseFieldList(), and parseSymDesc().
Referenced by parseTypeDef().
| static char* parseCrossRef | ( | typeCollection * | moduleTypes, | |
| const char * | , | |||
| int | ID, | |||
| char * | stabstr, | |||
| int & | cnt | |||
| ) | [static] |
Definition at line 1051 of file parseStab.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), Dyninst::SymtabAPI::typeCollection::findType(), and getIdentifier().
Referenced by parseTypeDef().
| static char* parseFieldList | ( | Module * | mod, | |
| fieldListType * | newType, | |||
| char * | stabstr, | |||
| bool | sunCPlusPlus | |||
| ) | [static] |
Definition at line 1724 of file parseStab.C.
References addBaseClassToClass(), Dyninst::SymtabAPI::fieldListType::addField(), convertCharToString(), Dyninst::SymtabAPI::dataFunction, Dyninst::SymtabAPI::dataScalar, Dyninst::SymtabAPI::typeCollection::findOrCreateType(), Dyninst::SymtabAPI::typeCollection::findType(), getFieldName(), getIdentifier(), isSymId(), parseSymDesc(), parseTypeUse(), Dyninst::SymtabAPI::visPrivate, Dyninst::SymtabAPI::visProtected, Dyninst::SymtabAPI::visPublic, and Dyninst::SymtabAPI::visUnknown.
Referenced by parseCPlusPlusInfo(), and parseTypeDef().
| static char* parseRangeType | ( | Module * | mod, | |
| const char * | name, | |||
| int | ID, | |||
| char * | stabstr, | |||
| unsigned int | sizeHint = 0 | |||
| ) | [static] |
Definition at line 1370 of file parseStab.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), convertCharToString(), FILE__, Dyninst::SymtabAPI::typeCollection::findType(), fprintf, Dyninst::SymtabAPI::Type::getSize(), guessSize(), and parseSymDesc().
Referenced by parseTypeDef().
| static char* parseRefType | ( | Module * | mod, | |
| const char * | name, | |||
| int | ID, | |||
| char * | stabstr, | |||
| int & | cnt | |||
| ) | [static] |
Definition at line 1660 of file parseStab.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), convertCharToString(), Dyninst::SymtabAPI::typeCollection::findOrCreateType(), and parseTypeUse().
Referenced by parseTypeDef().
| int parseSymDesc | ( | char * | stabstr, | |
| int & | cnt | |||
| ) | [static] |
Definition at line 885 of file parseStab.C.
Referenced by parseArrayDef(), parseAttrType(), parseCPlusPlusInfo(), parseFieldList(), parseRangeType(), Dyninst::SymtabAPI::parseStabString(), parseTypeDef(), and parseTypeUse().
| static char * parseTypeDef | ( | Module * | mod, | |
| char * | stabstr, | |||
| const char * | name, | |||
| int | ID, | |||
| unsigned int | sizeHint = 0 | |||
| ) | [static] |
Definition at line 2127 of file parseStab.C.
References Dyninst::SymtabAPI::typeEnum::addConstant(), Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), Dyninst::SymtabAPI::typeFunction::addParam(), convertCharToString(), Dyninst::SymtabAPI::dataFunction, Dyninst::SymtabAPI::dataScalar, Dyninst::SymtabAPI::dataStructure, Dyninst::SymtabAPI::dataUnion, Dyninst::SymtabAPI::Type::decrRefCount(), FILE__, Dyninst::SymtabAPI::typeCollection::findOrCreateType(), getIdentifier(), isSymId(), parseArrayDef(), parseAttrType(), parseCPlusPlusInfo(), parseCrossRef(), parseFieldList(), parseRangeType(), parseRefType(), parseSymDesc(), parseTypeUse(), and types_printf().
Referenced by parseArrayDef(), parseAttrType(), Dyninst::SymtabAPI::parseStabString(), and parseTypeUse().
| static int parseTypeUse | ( | Module * | mod, | |
| char *& | stabstr, | |||
| int & | cnt, | |||
| const char * | name | |||
| ) | [static] |
Definition at line 1033 of file parseStab.C.
References parseSymDesc(), and parseTypeDef().
Referenced by parseArrayDef(), parseFieldList(), parseRefType(), Dyninst::SymtabAPI::parseStabString(), and parseTypeDef().
| void vectorNameMatchKLUDGE | ( | Module * | mod, | |
| char * | demangled_sym, | |||
| std::vector< Function * > & | bpfv, | |||
| std::vector< int > & | matches | |||
| ) |
Definition at line 99 of file parseStab.C.
References Dyninst::SymtabAPI::Module::exec(), Dyninst::SymtabAPI::Symtab::isNativeCompiler(), and P_cplus_demangle().
Referenced by mangledNameMatchKLUDGE().
std::string currentRawSymbolName [static] |
Definition at line 79 of file parseStab.C.
Referenced by parseCPlusPlusInfo(), and Dyninst::SymtabAPI::parseStabString().
Definition at line 105 of file Object-elf.C.
| std::string symt_current_func_name |
Definition at line 103 of file Object-elf.C.
Referenced by Dyninst::SymtabAPI::parseStabString(), and Dyninst::SymtabAPI::Object::parseStabTypes().
| std::string symt_current_mangled_func_name |
Definition at line 104 of file Object-elf.C.
Referenced by Dyninst::SymtabAPI::parseStabString(), and Dyninst::SymtabAPI::Object::parseStabTypes().
1.6.1