Chromium Code Reviews| Index: src/gdb-jit.h |
| diff --git a/src/gdb-jit.h b/src/gdb-jit.h |
| index 14536cf0b38e287937cbad1c7fcef697082bcc0a..b45d32e2550fa89d5431395e37996b36bc8966e6 100644 |
| --- a/src/gdb-jit.h |
| +++ b/src/gdb-jit.h |
| @@ -5,50 +5,36 @@ |
| #ifndef V8_GDB_JIT_H_ |
| #define V8_GDB_JIT_H_ |
| -#include "src/allocation.h" |
| +#include "src/v8.h" |
| // |
| -// Basic implementation of GDB JIT Interface client. |
| -// GBD JIT Interface is supported in GDB 7.0 and above. |
| -// Currently on x64 and ia32 architectures and Linux OS are supported. |
| +// GDB has two ways of interacting with JIT code. With the "JIT compilation |
| +// interface", V8 can tell GDB when it emits JIT code. Unfortunately to do so, |
| +// it has to create platform-native object files, possibly with platform-native |
| +// debugging information. Currently only ELF and Mach-O are supported, which |
| +// limits this interface to Linux and Mac OS. This JIT compilation interface |
| +// was introduced in GDB 7.0. V8 support can be enabled with the --gdbjit flag. |
| +// |
| +// The other way that GDB can know about V8 code is via the "custom JIT reader" |
| +// interface, in which a GDB extension parses V8's private data to determine the |
| +// function, file, and line of a JIT frame, and how to unwind those frames. |
| +// This interface was introduced in GDB 7.6. This interface still relies on V8 |
| +// to register its code via the JIT compilation interface, but doesn't require |
| +// that V8 create ELF images. Support will be added for this interface in the |
| +// future. |
| // |
| - |
| -#ifdef ENABLE_GDB_JIT_INTERFACE |
| -#include "src/v8.h" |
| - |
| -#include "src/factory.h" |
| namespace v8 { |
| namespace internal { |
| -class CompilationInfo; |
| - |
| -class GDBJITInterface: public AllStatic { |
| - public: |
| - enum CodeTag { NON_FUNCTION, FUNCTION }; |
| - |
| - // Main entry point into GDB JIT realized as a JitCodeEventHandler. |
| - static void EventHandler(const v8::JitCodeEvent* event); |
| - |
| - static void AddCode(Handle<Name> name, |
| - Handle<Script> script, |
| - Handle<Code> code, |
| - CompilationInfo* info); |
| - |
| - static void RemoveCodeRange(Address start, Address end); |
| - |
| - private: |
| - static void AddCode(const char* name, Code* code, CodeTag tag, Script* script, |
| - CompilationInfo* info); |
| - |
| - static void RemoveCode(Code* code); |
| -}; |
| - |
| -#define GDBJIT(action) GDBJITInterface::action |
| - |
| -} } // namespace v8::internal |
| -#else |
| -#define GDBJIT(action) ((void) 0) |
| +namespace GDBJITInterface { |
| +#ifdef ENABLE_GDB_JIT_INTERFACE |
| +// JitCodeEventHandler that creates ELF/Mach-O objects and registers them with |
| +// GDB. |
| +void EventHandler(const v8::JitCodeEvent* event); |
| #endif |
| +} |
| +} |
| +} // namespace v8::internal |
|
Michael Starzinger
2015/02/25 10:16:45
nit: Better use the following style, then clang-fo
wingo
2015/02/25 11:49:11
Done.
|
| #endif |