60 #ifndef BinUtil_LM_hpp 61 #define BinUtil_LM_hpp 147 LM(
bool useBinutils=
false);
159 open(
const char* filenm);
165 read(
const std::set<std::string> &directorySet,
ReadFlg readflg);
228 {
return ((
type() == TypeDSO) && (
textBeg() < loadAddr)); }
258 std::pair<SegMap::iterator, bool> ret =
294 std::pair<ProcMap::iterator, bool> ret =
341 InsnMap::const_iterator it =
m_insnMap.find(opvma);
352 InsnMap::const_iterator it =
m_insnMap.lower_bound(opvma);
363 m_insnMap.insert(InsnMap::value_type(opvma, insn));
412 std::string& func, std::string& file,
414 unsigned flags = 1) ;
467 const char* pre =
"")
const;
474 dumpme(std::ostream& o = std::cerr,
const char* pre =
"")
const;
477 dumpProcMap(std::ostream& o = std::cerr,
unsigned flag = 0,
478 const char* pre =
"")
const;
529 dumpModuleInfo(std::ostream& o = std::cerr,
const char* pre =
"")
const;
532 dumpSymTab(std::ostream& o = std::cerr,
const char* pre =
"")
const;
616 open(
const char* filenm);
620 {
return m_startVMA; }
626 dump(std::ostream& o = std::cerr,
627 int flags =
DUMP_Short,
const char* pre =
"")
const;
630 dumpme(std::ostream& o = std::cerr,
const char* pre =
"")
const;
649 #define BINUTIL_Throw(streamArgs) DIAG_ThrowX(BinUtil::Exception, streamArgs) 661 {
return "[BinUtil]: " + what(); }
671 #endif // BinUtil_LM_hpp
std::string toString(int flags=DUMP_Short, const char *pre="") const
Exception(const std::string x, const char *filenm=NULL, uint lineno=0)
virtual VMA convertVMAToOpVMA(VMA vma, ushort GCC_ATTR_UNUSED opIndex) const
bool findProcSrcCodeInfo(VMA vma, ushort opIndex, SrcFile::ln &line) const
const SegMap & segs() const
bool doUnrelocate(VMA loadAddr) const
Proc * findProc(VMA vma) const
void textBegEndVMA(VMA *begVMA, VMA *endVMA)
void ddumpProcMap(unsigned flag) const
Insn * findInsnNear(VMA vma, ushort opIndex) const
std::map< VMA, Insn * > InsnMap
void relocate(VMA textBegReloc)
virtual void read(const std::set< std::string > &directorySet, ReadFlg readflg)
void ddump(int code=DUMP_Long_decode) const
bool isPseudolLoadModule()
bool insertSeg(VMAInterval ival, Seg *seg)
bool functionNeverReturns(VMA addr)
BinUtil::Dbg::LM m_dbgInfo
MachInsn * findMachInsn(VMA vma, ushort &size) const
VMAIntervalMap< Seg * > SegMap
bool realpath(std::string &filenm)
asymbol ** m_bfdDynSymTab
const std::string & name() const
unsigned short int ushort
bool realpath(std::string &pathNm) const
void insertInsn(VMA vma, ushort opIndex, Insn *insn)
RealPathMgr & m_realpathMgr
const char * getPseudoLoadModuleName()
virtual void dumpProcMap(std::ostream &o=std::cerr, unsigned flag=0, const char *pre="") const
asymbol ** m_bfdSymTabSort
VMAIntervalMap< Proc * > ProcMap
void dumpModuleInfo(std::ostream &o=std::cerr, const char *pre="") const
My_t::const_iterator const_iterator
LM(const LM &GCC_ATTR_UNUSED lm)
virtual void dumpme(std::ostream &o=std::cerr, const char *pre="") const
const InsnMap & insns() const
static int cmpBFDSymByVMA(const void *s1, const void *s2)
void dumpSymTab(std::ostream &o=std::cerr, const char *pre="") const
VMA unrelocate(VMA relocVMA) const
Seg * findSeg(VMA vma) const
virtual void dump(std::ostream &o=std::cerr, int flags=DUMP_Short, const char *pre="") const
const ProcMap & procs() const
virtual std::string message() const
std::pair< const key_type, T > value_type
Insn * findInsn(VMA vma, ushort opIndex) const
iterator find(const key_type &toFind)
LM & operator=(const LM &GCC_ATTR_UNUSED lm)
bool findSrcCodeInfo(VMA vma, ushort opIndex, std::string &func, std::string &file, SrcFile::ln &line)
asymbol ** bfdSymTab() const
BinUtil::Dbg::LM * getDebugInfo()
bool insertProc(VMAInterval ival, Proc *proc)
LM(bool useBinutils=false)
SimpleSymbols * m_simpleSymbols
virtual void open(const char *filenm)
const std::string & name()