JITRegistrar.h revision 234971
112048Speter//===-- JITRegistrar.h - Registers objects with a debugger ----------------===// 212048Speter// 312048Speter// The LLVM Compiler Infrastructure 412048Speter// 512048Speter// This file is distributed under the University of Illinois Open Source 612048Speter// License. See LICENSE.TXT for details. 712048Speter// 812048Speter//===----------------------------------------------------------------------===// 912048Speter 1012048Speter#ifndef LLVM_EXECUTION_ENGINE_JIT_REGISTRAR_H 1112048Speter#define LLVM_EXECUTION_ENGINE_JIT_REGISTRAR_H 1212048Speter 1312048Speter#include "llvm/Support/MemoryBuffer.h" 1412048Speter 1512048Speternamespace llvm { 1612048Speter 1712048Speter/// Global access point for the JIT debugging interface. 1812048Speterclass JITRegistrar { 1912048Speterpublic: 2012048Speter /// Instantiates the JIT service. 2112048Speter JITRegistrar() {} 2212048Speter 2312048Speter /// Unregisters each object that was previously registered and releases all 2412048Speter /// internal resources. 2512048Speter virtual ~JITRegistrar() {} 2612048Speter 2712048Speter /// Creates an entry in the JIT registry for the buffer @p Object, 2812048Speter /// which must contain an object file in executable memory with any 2912048Speter /// debug information for the debugger. 3012048Speter virtual void registerObject(const MemoryBuffer &Object) = 0; 3112048Speter 3237001Scharnier /// Removes the internal registration of @p Object, and 3350476Speter /// frees associated resources. 3412048Speter /// Returns true if @p Object was previously registered. 3512048Speter virtual bool deregisterObject(const MemoryBuffer &Object) = 0; 3612048Speter 3712048Speter /// Returns a reference to a GDB JIT registrar singleton 3812048Speter static JITRegistrar& getGDBRegistrar(); 3937001Scharnier}; 4012048Speter 4112048Speter} // end namespace llvm 4212048Speter 4312048Speter#endif // LLVM_EXECUTION_ENGINE_JIT_REGISTRAR_H 4412048Speter