#include <regex.h>#include "symtabAPI/h/Symtab.h"#include "symtabAPI/src/Object.h"#include "common/h/pathName.h"#include "Collections.h"#include "Module.h"#include "debug.h"#include <procinfo.h>#include <sys/ioctl.h>#include <sys/types.h>#include <fcntl.h>#include <assert.h>#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include <string.h>#include <sys/time.h>#include <sys/reg.h>#include <sys/user.h>#include <sys/wait.h>#include <sys/param.h>#include <set>#include <iomanip>#include <xcoff.h>#include <exceptab.h>#include <ar.h>#include <scnhdr.h>#include <dlfcn.h>#include "common/h/debugOstream.h"Go to the source code of this file.
Data Structures | |
| struct | iform |
| struct | dform |
| struct | xlform |
| union | instructUnion |
Defines | |
| #define | __XCOFF_HYBRID__ |
| #define | __AR_BIG__ |
| #define | __AR_SMALL__ |
| #define | C_WEAKEXT 0 |
| #define | Bop 18 |
| #define | Lop 32 |
| #define | BCLRop 19 |
| #define | BCCTRxop 528 |
| #define | PARSE_AOUT_DIE(errType, errCode) |
| #define | SCNH_NAME(i) (char *)(scnh_base + scn_size * (i) + s_name_off) |
| #define | SCNH_PADDR(i) ((*(uint64_t *)(scnh_base + scn_size * (i) + s_paddr_off)) >> word_shift) |
| #define | SCNH_VADDR(i) ((*(uint64_t *)(scnh_base + scn_size * (i) + s_vaddr_off)) >> word_shift) |
| #define | SCNH_SIZE(i) ((*(uint64_t *)(scnh_base + scn_size * (i) + s_size_off)) >> word_shift) |
| #define | SCNH_SCNPTR(i) ((*(uint64_t *)(scnh_base + scn_size * (i) + s_scnptr_off)) >> word_shift) |
| #define | SCNH_RELPTR(i) ((*(uint64_t *)(scnh_base + scn_size * (i) + s_relptr_off)) >> word_shift) |
| #define | SCNH_LNNOPTR(i) ((*(uint64_t *)(scnh_base + scn_size * (i) + s_lnnoptr_off)) >> word_shift) |
| #define | SCNH_EXCEPTPTR(i) ((*(uint64_t *)(scnh_base + scn_size * (i) + s_exceptptr_off)) >> word_shift) |
| #define | SCNH_NRELOC(i) ((*(uint32_t *)(scnh_base + scn_size * (i) + s_nreloc_off)) >> half_shift) |
| #define | SCNH_NLNNO(i) ((*(uint32_t *)(scnh_base + scn_size * (i) + s_nlnno_off)) >> half_shift) |
| #define | SCNH_FLAGS(i) (*(uint32_t *)(scnh_base + scn_size * (i) + s_flags_off)) |
| #define | PARSE_AR_DIE(errType, errCode) |
Functions | |
| unsigned long | roundup4 (unsigned long val) |
| Region::perm_t | getRegionPerms (unsigned flags) |
| Region::RegionType | getRegionType (unsigned flags) |
| bool | parseCompilerType (Object *objPtr) |
Variables | |
| char | errorLine [100] |
| std::string | symt_current_func_name |
| std::string | symt_current_mangled_func_name |
| Symbol * | symt_current_func = NULL |
| Offset | trueBaseAddress = 0 |
| #define __AR_BIG__ |
Definition at line 76 of file Object-xcoff.C.
| #define __AR_SMALL__ |
Definition at line 77 of file Object-xcoff.C.
| #define __XCOFF_HYBRID__ |
Definition at line 35 of file Object-xcoff.C.
| #define BCCTRxop 528 |
Definition at line 100 of file Object-xcoff.C.
| #define BCLRop 19 |
Definition at line 99 of file Object-xcoff.C.
| #define Bop 18 |
Definition at line 97 of file Object-xcoff.C.
| #define C_WEAKEXT 0 |
Definition at line 86 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define Lop 32 |
Definition at line 98 of file Object-xcoff.C.
| #define PARSE_AOUT_DIE | ( | errType, | |||
| errCode | ) |
{ \
fprintf(stderr,"warning:parsing a.out file %s(%s): %s \n", \
mf->filename().c_str(), member_.c_str(), errType); \
err_func_(errType); \
return; \
}
Definition at line 431 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define PARSE_AR_DIE | ( | errType, | |||
| errCode | ) |
{ \
sprintf(errorLine, "Error parsing archive file %s: %s\n", \
mf->pathname().c_str(), errType); \
err_func_(errType); \
return; \
}
Definition at line 1228 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::load_archive().
| #define SCNH_EXCEPTPTR | ( | i | ) | ((*(uint64_t *)(scnh_base + scn_size * (i) + s_exceptptr_off)) >> word_shift) |
Definition at line 450 of file Object-xcoff.C.
| #define SCNH_FLAGS | ( | i | ) | (*(uint32_t *)(scnh_base + scn_size * (i) + s_flags_off)) |
Definition at line 453 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define SCNH_LNNOPTR | ( | i | ) | ((*(uint64_t *)(scnh_base + scn_size * (i) + s_lnnoptr_off)) >> word_shift) |
Definition at line 449 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define SCNH_NAME | ( | i | ) | (char *)(scnh_base + scn_size * (i) + s_name_off) |
Definition at line 443 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define SCNH_NLNNO | ( | i | ) | ((*(uint32_t *)(scnh_base + scn_size * (i) + s_nlnno_off)) >> half_shift) |
Definition at line 452 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define SCNH_NRELOC | ( | i | ) | ((*(uint32_t *)(scnh_base + scn_size * (i) + s_nreloc_off)) >> half_shift) |
Definition at line 451 of file Object-xcoff.C.
| #define SCNH_PADDR | ( | i | ) | ((*(uint64_t *)(scnh_base + scn_size * (i) + s_paddr_off)) >> word_shift) |
Definition at line 444 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define SCNH_RELPTR | ( | i | ) | ((*(uint64_t *)(scnh_base + scn_size * (i) + s_relptr_off)) >> word_shift) |
Definition at line 448 of file Object-xcoff.C.
| #define SCNH_SCNPTR | ( | i | ) | ((*(uint64_t *)(scnh_base + scn_size * (i) + s_scnptr_off)) >> word_shift) |
Definition at line 447 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define SCNH_SIZE | ( | i | ) | ((*(uint64_t *)(scnh_base + scn_size * (i) + s_size_off)) >> word_shift) |
Definition at line 446 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| #define SCNH_VADDR | ( | i | ) | ((*(uint64_t *)(scnh_base + scn_size * (i) + s_vaddr_off)) >> word_shift) |
Definition at line 445 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| Region::perm_t getRegionPerms | ( | unsigned | flags | ) |
Definition at line 390 of file Object-xcoff.C.
References Dyninst::SymtabAPI::Region::RP_R, Dyninst::SymtabAPI::Region::RP_RW, and Dyninst::SymtabAPI::Region::RP_RX.
| Region::RegionType getRegionType | ( | unsigned | flags | ) |
Definition at line 403 of file Object-xcoff.C.
References Dyninst::SymtabAPI::Region::RT_BSS, Dyninst::SymtabAPI::Region::RT_DATA, Dyninst::SymtabAPI::Region::RT_OTHER, Dyninst::SymtabAPI::Region::RT_SYMTAB, and Dyninst::SymtabAPI::Region::RT_TEXT.
| bool parseCompilerType | ( | Object * | objPtr | ) |
Definition at line 1412 of file Object-xcoff.C.
References Dyninst::SymtabAPI::stab_entry::count(), Dyninst::SymtabAPI::Object::get_stab_info(), Dyninst::SymtabAPI::AObject::getAddressWidth(), Dyninst::SymtabAPI::stab_entry::getStringBase(), N_OPT, N_UNDF, Dyninst::SymtabAPI::stab_entry::setStringBase(), Dyninst::SymtabAPI::stab_entry::type(), and Dyninst::SymtabAPI::stab_entry::val().
| unsigned long roundup4 | ( | unsigned long | val | ) |
Definition at line 133 of file Object-xcoff.C.
Referenced by Dyninst::SymtabAPI::Object::parse_aout().
| char errorLine[100] |
Definition at line 89 of file Object-xcoff.C.
| Symbol* symt_current_func = NULL |
Definition at line 92 of file Object-xcoff.C.
| std::string symt_current_func_name |
Definition at line 90 of file Object-xcoff.C.
| std::string symt_current_mangled_func_name |
Definition at line 91 of file Object-xcoff.C.
| Offset trueBaseAddress = 0 |
Definition at line 1509 of file Object-xcoff.C.
1.6.1