parseStab.C File Reference

#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 TypeparseConstantUse (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)
FunctionmangledNameMatchKLUDGE (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 TypeparseArrayDef (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
Functionsymt_current_func
static std::string currentRawSymbolName

Define Documentation

#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.


Function Documentation

void addBaseClassToClass ( Module mod,
int  baseID,
fieldListType newType,
int   
)
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]
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().

Function* mangledNameMatchKLUDGE ( const char *  pretty,
const char *  mangled,
Module mod 
)
static Type* parseArrayDef ( Module mod,
const char *  name,
int  ID,
char *&  stabstr,
int &  cnt,
unsigned int  sizeHint 
) [static]
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().

static Type * parseConstantUse ( Module mod,
char *  stabstr,
int &  cnt 
) [static]
static char* parseCPlusPlusInfo ( Module mod,
char *  stabstr,
const char *  mangledName,
int  ID 
) [static]
static char* parseCrossRef ( typeCollection moduleTypes,
const char *  ,
int  ID,
char *  stabstr,
int &  cnt 
) [static]
static char* parseFieldList ( Module mod,
fieldListType newType,
char *  stabstr,
bool  sunCPlusPlus 
) [static]
static char* parseRangeType ( Module mod,
const char *  name,
int  ID,
char *  stabstr,
unsigned int  sizeHint = 0 
) [static]
static char* parseRefType ( Module mod,
const char *  name,
int  ID,
char *  stabstr,
int &  cnt 
) [static]
int parseSymDesc ( char *  stabstr,
int &  cnt 
) [static]
static char * parseTypeDef ( Module mod,
char *  stabstr,
const char *  name,
int  ID,
unsigned int  sizeHint = 0 
) [static]
static int parseTypeUse ( Module mod,
char *&  stabstr,
int &  cnt,
const char *  name 
) [static]
void vectorNameMatchKLUDGE ( Module mod,
char *  demangled_sym,
std::vector< Function * > &  bpfv,
std::vector< int > &  matches 
)

Variable Documentation

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.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1