diff options
Diffstat (limited to 'runtime/jit/debugger_interface.h')
-rw-r--r-- | runtime/jit/debugger_interface.h | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/runtime/jit/debugger_interface.h b/runtime/jit/debugger_interface.h index f84f08d019..be5e5acfbc 100644 --- a/runtime/jit/debugger_interface.h +++ b/runtime/jit/debugger_interface.h @@ -17,6 +17,7 @@ #ifndef ART_RUNTIME_JIT_DEBUGGER_INTERFACE_H_ #define ART_RUNTIME_JIT_DEBUGGER_INTERFACE_H_ +#include <functional> #include <inttypes.h> #include <vector> @@ -29,16 +30,9 @@ namespace art { class DexFile; class Mutex; class Thread; +struct JITCodeEntry; -// This method is declared in the compiler library. -// We need to pass it by pointer to be able to call it from runtime. -typedef std::vector<uint8_t> PackElfFileForJITFunction( - InstructionSet isa, - const InstructionSetFeatures* features, - std::vector<ArrayRef<const uint8_t>>& added_elf_files, - std::vector<const void*>& removed_symbols, - bool compress, - /*out*/ size_t* num_symbols); +ArrayRef<const uint8_t> GetJITCodeEntrySymFile(JITCodeEntry*); // Notify native tools (e.g. libunwind) that DEX file has been opened. void AddNativeDebugInfoForDex(Thread* self, const DexFile* dexfile); @@ -46,19 +40,16 @@ void AddNativeDebugInfoForDex(Thread* self, const DexFile* dexfile); // Notify native tools (e.g. libunwind) that DEX file has been closed. void RemoveNativeDebugInfoForDex(Thread* self, const DexFile* dexfile); -// Notify native tools (e.g. libunwind) that JIT has compiled a new method. +// Notify native tools (e.g. libunwind) that JIT has compiled a single new method. // The method will make copy of the passed ELF file (to shrink it to the minimum size). -// If packing function is provided, ELF files can be merged to save space -// (however, the merging drops advanced gdb debug-info as it is too complex). -void AddNativeDebugInfoForJit(Thread* self, - const void* code_ptr, +// If packing is allowed, the ELF file might be merged with others to save space +// (however, this drops all ELF sections other than symbols names and unwinding info). +void AddNativeDebugInfoForJit(const void* code_ptr, const std::vector<uint8_t>& symfile, - PackElfFileForJITFunction pack, - InstructionSet isa, - const InstructionSetFeatures* features); + bool allow_packing); // Notify native tools (e.g. libunwind) that JIT code has been garbage collected. -void RemoveNativeDebugInfoForJit(Thread* self, const void* code_ptr); +void RemoveNativeDebugInfoForJit(ArrayRef<const void*> removed_code_ptrs); // Returns approximate memory used by debug info for JIT code. size_t GetJitMiniDebugInfoMemUsage(); |