symutil.h

Go to the documentation of this file.
00001 /*
00002  * See the dyninst/COPYRIGHT file for copyright information.
00003  * 
00004  * We provide the Paradyn Tools (below described as "Paradyn")
00005  * on an AS IS basis, and do not warrant its validity or performance.
00006  * We reserve the right to update, modify, or discontinue this
00007  * software at any time.  We shall have no obligation to supply such
00008  * updates or modifications or any other form of support to you.
00009  * 
00010  * By your use of Paradyn, you understand and agree that we (or any
00011  * other person or entity with proprietary rights in Paradyn) are
00012  * under no obligation to provide either maintenance services,
00013  * update services, notices of latent defects, or correction of
00014  * defects for Paradyn.
00015  * 
00016  * This library is free software; you can redistribute it and/or
00017  * modify it under the terms of the GNU Lesser General Public
00018  * License as published by the Free Software Foundation; either
00019  * version 2.1 of the License, or (at your option) any later version.
00020  * 
00021  * This library is distributed in the hope that it will be useful,
00022  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00023  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00024  * Lesser General Public License for more details.
00025  * 
00026  * You should have received a copy of the GNU Lesser General Public
00027  * License along with this library; if not, write to the Free Software
00028  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00029  */
00030 
00031 //Hashing function for dictionary_hashes
00032 
00033 #if !defined(_symtab_util_h_)
00034 #define _symtab_util_h_
00035 
00036 #include "dyntypes.h"
00037 #include <string>
00038 
00039 #if defined(_MSC_VER)   
00040 #include <set>
00041 #else
00042 #include <regex.h>
00043 #include <string>
00044 #endif
00045 
00046 namespace Dyninst{
00047 namespace SymtabAPI{
00048 
00049 
00050 typedef enum {
00051     mangledName = 1,
00052     prettyName = 2,
00053     typedName = 4,
00054     anyName = 7 } NameType;
00055 
00056 typedef enum { 
00057    lang_Unknown,
00058    lang_Assembly,
00059    lang_C,
00060    lang_CPlusPlus,
00061    lang_GnuCPlusPlus,
00062    lang_Fortran,
00063    lang_Fortran_with_pretty_debug,
00064    lang_CMFortran
00065 } supportedLanguages;
00066 
00067 const char *supportedLanguages2Str(supportedLanguages s);
00068 
00069 typedef enum {
00070    obj_Unknown,
00071    obj_SharedLib,
00072    obj_Executable,
00073    obj_RelocatableFile
00074 } ObjectType;
00075 
00076 typedef enum { 
00077    Obj_Parsing = 0,
00078    Syms_To_Functions,
00079    Build_Function_Lists,
00080    No_Such_Function,
00081    No_Such_Variable,
00082    No_Such_Module,
00083    No_Such_Region,
00084    No_Such_Symbol,
00085    No_Such_Member,
00086    Not_A_File,
00087    Not_An_Archive,
00088    Duplicate_Symbol,
00089    Export_Error,
00090    Emit_Error,
00091    Invalid_Flags,
00092    Bad_Frame_Data,      /* 15 */
00093    No_Frame_Entry,
00094    Frame_Read_Error,
00095    Multiple_Region_Matches,
00096    No_Error
00097 } SymtabError;
00098 
00099 typedef struct{
00100     void *data;
00101     Offset loadaddr;
00102     unsigned long size;
00103     std::string name; 
00104     unsigned segFlags;
00105 }Segment;
00106 
00107 }//namespace SymtabAPI
00108 }//namespace Dyninst
00109 
00110 
00111 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1