#include <dwarfHandle.h>
Public Types | |
| typedef DwarfHandle * | ptr |
Public Member Functions | |
| ~DwarfHandle () | |
| Elf_X * | origFile () |
| Elf_X * | debugLinkFile () |
| Dwarf_Debug * | line_dbg () |
| Dwarf_Debug * | type_dbg () |
| Dwarf_Debug * | frame_dbg () |
| DwarfFrameParserPtr | frameParser () |
Static Public Member Functions | |
| static DwarfHandle::ptr | createDwarfHandle (std::string filename_, Elf_X *file_, Dwarf_Handler err_func_=defaultErrFunc, Dwarf_Ptr err_data_=NULL) |
Private Types | |
| enum | dwarf_status_t { dwarf_status_uninitialized, dwarf_status_error, dwarf_status_ok } |
Private Member Functions | |
| bool | init_dbg () |
| void | locate_dbg_file () |
| bool | hasFrameData (Elf_X *elfx) |
| DwarfHandle (std::string filename_, Elf_X *file_, Dwarf_Handler err_func_, Dwarf_Ptr err_data_) | |
Static Private Member Functions | |
| static void | defaultDwarfError (Dwarf_Error err, Dwarf_Ptr arg) |
Private Attributes | |
| DwarfFrameParserPtr | sw |
| dwarf_status_t | init_dwarf_status |
| Dwarf_Debug | dbg_file_data |
| Dwarf_Debug | file_data |
| Dwarf_Debug * | line_data |
| Dwarf_Debug * | type_data |
| Dwarf_Debug * | frame_data |
| Elf_X * | file |
| Elf_X * | dbg_file |
| Dwarf_Handler | err_func |
| Dwarf_Ptr | err_data |
| std::string | filename |
| std::string | debug_filename |
Static Private Attributes | |
| static std::map< std::string, DwarfHandle::ptr > | all_dwarf_handles |
| static Dwarf_Handler | defaultErrFunc = DwarfHandle::defaultDwarfError |
Definition at line 47 of file dwarfHandle.h.
Definition at line 49 of file dwarfHandle.h.
enum Dyninst::Dwarf::DwarfHandle::dwarf_status_t [private] |
Definition at line 52 of file dwarfHandle.h.
| Dyninst::Dwarf::DwarfHandle::DwarfHandle | ( | std::string | filename_, | |
| Elf_X * | file_, | |||
| Dwarf_Handler | err_func_, | |||
| Dwarf_Ptr | err_data_ | |||
| ) | [private] |
| DwarfHandle::~DwarfHandle | ( | ) |
Definition at line 208 of file dwarfHandle.C.
References dbg_file_data, dwarf_status_ok, file_data, and init_dwarf_status.
| static DwarfHandle::ptr Dyninst::Dwarf::DwarfHandle::createDwarfHandle | ( | std::string | filename_, | |
| Elf_X * | file_, | |||
| Dwarf_Handler | err_func_ = defaultErrFunc, |
|||
| Dwarf_Ptr | err_data_ = NULL | |||
| ) | [static] |
| Elf_X * DwarfHandle::debugLinkFile | ( | ) |
Definition at line 181 of file dwarfHandle.C.
References dbg_file.
Referenced by Dyninst::SymtabAPI::Object::loaded_elf(), and Dyninst::SymtabAPI::Object::parseDwarfFileLineInfo().
| void DwarfHandle::defaultDwarfError | ( | Dwarf_Error | err, | |
| Dwarf_Ptr | arg | |||
| ) | [static, private] |
Definition at line 42 of file dwarfHandle.C.
| Dwarf_Debug * DwarfHandle::frame_dbg | ( | ) |
Definition at line 200 of file dwarfHandle.C.
References frame_data, and init_dbg().
Referenced by Dyninst::SymtabAPI::Function::expandLocation(), Dyninst::SymtabAPI::Object::getRegValueAtFrame(), and Dyninst::SymtabAPI::Object::hasFrameDebugInfo().
| DwarfFrameParserPtr DwarfHandle::frameParser | ( | ) |
Definition at line 235 of file dwarfHandle.C.
References sw.
Referenced by Dyninst::SymtabAPI::Object::getRegValueAtFrame(), and Dyninst::SymtabAPI::Object::hasFrameDebugInfo().
| bool DwarfHandle::hasFrameData | ( | Elf_X * | elfx | ) | [private] |
Definition at line 148 of file dwarfHandle.C.
References Dyninst::Elf_X::e_shnum(), Dyninst::Elf_X::e_shstrndx(), frame_section_names, Dyninst::Elf_X_Shdr::get_data(), Dyninst::Elf_X::get_shdr(), Dyninst::Elf_X_Data::get_string(), Dyninst::Elf_X_Data::isValid(), Dyninst::Elf_X_Shdr::isValid(), Dyninst::Elf_X_Shdr::sh_name(), and Dyninst::Elf_X_Shdr::sh_type().
Referenced by init_dbg().
| bool DwarfHandle::init_dbg | ( | ) | [private] |
Definition at line 81 of file dwarfHandle.C.
References Dyninst::Arch_ppc32, Dyninst::Arch_ppc64, Dyninst::Arch_x86, Dyninst::Arch_x86_64, Dyninst::Dwarf::DwarfFrameParser::create(), dbg_file, dbg_file_data, dwarf_status_error, dwarf_status_ok, Dyninst::Elf_X::e_elfp(), Dyninst::Elf_X::e_machine(), err_data, err_func, file, file_data, frame_data, hasFrameData(), init_dwarf_status, line_data, sw, and type_data.
Referenced by frame_dbg(), line_dbg(), and type_dbg().
| Dwarf_Debug * DwarfHandle::line_dbg | ( | ) |
Definition at line 186 of file dwarfHandle.C.
References init_dbg(), and line_data.
Referenced by Dyninst::SymtabAPI::Object::parseDwarfFileLineInfo().
| void DwarfHandle::locate_dbg_file | ( | ) | [private] |
Definition at line 66 of file dwarfHandle.C.
References dbg_file, debug_filename, dwarf_printf, Dyninst::Elf_X::end(), file, filename, Dyninst::Elf_X::findDebugFile(), Dyninst::Elf_X::isValid(), and Dyninst::Elf_X::newElf_X().
| Elf_X * DwarfHandle::origFile | ( | ) |
Definition at line 176 of file dwarfHandle.C.
References file.
| Dwarf_Debug * DwarfHandle::type_dbg | ( | ) |
Definition at line 193 of file dwarfHandle.C.
References init_dbg(), and type_data.
Referenced by Dyninst::SymtabAPI::Object::parseTypeInfo().
map< std::string, DwarfHandle::ptr > DwarfHandle::all_dwarf_handles [static, private] |
Definition at line 74 of file dwarfHandle.h.
Elf_X* Dyninst::Dwarf::DwarfHandle::dbg_file [private] |
Definition at line 66 of file dwarfHandle.h.
Referenced by debugLinkFile(), init_dbg(), and locate_dbg_file().
Dwarf_Debug Dyninst::Dwarf::DwarfHandle::dbg_file_data [private] |
Definition at line 59 of file dwarfHandle.h.
Referenced by init_dbg(), and ~DwarfHandle().
std::string Dyninst::Dwarf::DwarfHandle::debug_filename [private] |
Definition at line 73 of file dwarfHandle.h.
Referenced by locate_dbg_file().
Dwarf_Handler DwarfHandle::defaultErrFunc = DwarfHandle::defaultDwarfError [static, private] |
Definition at line 75 of file dwarfHandle.h.
Dwarf_Ptr Dyninst::Dwarf::DwarfHandle::err_data [private] |
Definition at line 68 of file dwarfHandle.h.
Referenced by init_dbg().
Dwarf_Handler Dyninst::Dwarf::DwarfHandle::err_func [private] |
Definition at line 67 of file dwarfHandle.h.
Referenced by init_dbg().
Elf_X* Dyninst::Dwarf::DwarfHandle::file [private] |
Definition at line 65 of file dwarfHandle.h.
Referenced by init_dbg(), locate_dbg_file(), and origFile().
Dwarf_Debug Dyninst::Dwarf::DwarfHandle::file_data [private] |
Definition at line 60 of file dwarfHandle.h.
Referenced by init_dbg(), and ~DwarfHandle().
std::string Dyninst::Dwarf::DwarfHandle::filename [private] |
Definition at line 72 of file dwarfHandle.h.
Referenced by locate_dbg_file().
Dwarf_Debug* Dyninst::Dwarf::DwarfHandle::frame_data [private] |
Definition at line 63 of file dwarfHandle.h.
Referenced by frame_dbg(), and init_dbg().
Definition at line 57 of file dwarfHandle.h.
Referenced by init_dbg(), and ~DwarfHandle().
Dwarf_Debug* Dyninst::Dwarf::DwarfHandle::line_data [private] |
Definition at line 61 of file dwarfHandle.h.
Referenced by init_dbg(), and line_dbg().
Definition at line 51 of file dwarfHandle.h.
Referenced by frameParser(), and init_dbg().
Dwarf_Debug* Dyninst::Dwarf::DwarfHandle::type_data [private] |
Definition at line 62 of file dwarfHandle.h.
Referenced by init_dbg(), and type_dbg().
1.6.1