summaryrefslogtreecommitdiff
path: root/runtime/jit/debugger_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/jit/debugger_interface.h')
-rw-r--r--runtime/jit/debugger_interface.h27
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();