In loader, add Disassemble functionality.
Change-Id: I5ca54992a5a2316eecd402e3c6c8cc27842698e6
diff --git a/bcc.cpp b/bcc.cpp
index 8641a0a..aca6280 100644
--- a/bcc.cpp
+++ b/bcc.cpp
@@ -1949,6 +1949,7 @@
}
};
+ public:
void Disassemble(const llvm::StringRef &Name, uint8_t *Start,
size_t Length, bool IsStub) {
llvm::raw_fd_ostream *OS;
@@ -2015,6 +2016,7 @@
}
#endif // defined(USE_DISASSEMBLER)
+ private:
// Resolver to undefined symbol in CodeEmitter
BCCSymbolLookupFn mpSymbolLookupFn;
void *mpSymbolLookupContext;
@@ -2826,6 +2828,13 @@
&relocations[0], relocations.size(),
(unsigned char *)mCodeDataAddr+MaxCodeSize);
+ if (mCodeEmitter.get()) {
+ mCodeEmitter->Disassemble(llvm::StringRef("cache"),
+ reinterpret_cast<uint8_t*>(mCodeDataAddr),
+ 2 * 1024 /*MaxCodeSize*/,
+ false);
+ }
+
delete TM;
}
#endif