diff options
Diffstat (limited to 'runtime/jit/debugger_interface.h')
| -rw-r--r-- | runtime/jit/debugger_interface.h | 41 |
1 files changed, 11 insertions, 30 deletions
diff --git a/runtime/jit/debugger_interface.h b/runtime/jit/debugger_interface.h index 8c4bb3fdf4..3d25910f26 100644 --- a/runtime/jit/debugger_interface.h +++ b/runtime/jit/debugger_interface.h @@ -26,45 +26,26 @@ namespace art { -extern "C" { - struct JITCodeEntry; -} - // Notify native tools (e.g. libunwind) that DEX file has been opened. -// The pointer needs to point the start of the dex data (not the DexFile* object). -void RegisterDexFileForNative(Thread* current_thread, const void* dexfile_header); +// It takes the lock itself. The parameter must point to dex data (not the DexFile* object). +void AddNativeDebugInfoForDex(Thread* current_thread, ArrayRef<const uint8_t> dexfile); // Notify native tools (e.g. libunwind) that DEX file has been closed. -// The pointer needs to point the start of the dex data (not the DexFile* object). -void DeregisterDexFileForNative(Thread* current_thread, const void* dexfile_header); - -// Notify native debugger about new JITed code by passing in-memory ELF. -// It takes ownership of the in-memory ELF file. -JITCodeEntry* CreateJITCodeEntry(const std::vector<uint8_t>& symfile) - REQUIRES(Locks::native_debug_interface_lock_); - -// Notify native debugger that JITed code has been removed. -// It also releases the associated in-memory ELF file. -void DeleteJITCodeEntry(JITCodeEntry* entry) - REQUIRES(Locks::native_debug_interface_lock_); - -// Helper method to track life-time of JITCodeEntry. -// It registers given code address as being described by the given entry. -void IncrementJITCodeEntryRefcount(JITCodeEntry* entry, uintptr_t code_address) - REQUIRES(Locks::native_debug_interface_lock_); +// It takes the lock itself. The parameter must point to dex data (not the DexFile* object). +void RemoveNativeDebugInfoForDex(Thread* current_thread, ArrayRef<const uint8_t> dexfile); -// Helper method to track life-time of JITCodeEntry. -// It de-registers given code address as being described by the given entry. -void DecrementJITCodeEntryRefcount(JITCodeEntry* entry, uintptr_t code_address) +// Notify native tools about new JITed code by passing in-memory ELF. +// The handle is the object that is being described (needed to be able to remove the entry). +// The method will make copy of the passed ELF file (to shrink it to the minimum size). +void AddNativeDebugInfoForJit(const void* handle, const std::vector<uint8_t>& symfile) REQUIRES(Locks::native_debug_interface_lock_); -// Find the registered JITCodeEntry for given code address. -// There can be only one entry per address at any given time. -JITCodeEntry* GetJITCodeEntry(uintptr_t code_address) +// Notify native debugger that JITed code has been removed and free the debug info. +void RemoveNativeDebugInfoForJit(const void* handle) REQUIRES(Locks::native_debug_interface_lock_); // Returns approximate memory used by all JITCodeEntries. -size_t GetJITCodeEntryMemUsage() +size_t GetJitNativeDebugInfoMemUsage() REQUIRES(Locks::native_debug_interface_lock_); } // namespace art |