v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
gdb-jit.h
Go to the documentation of this file.
1
// Copyright 2010 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef V8_DIAGNOSTICS_GDB_JIT_H_
6
#define V8_DIAGNOSTICS_GDB_JIT_H_
7
8
#include "
src/base/address-region.h
"
9
10
//
11
// GDB has two ways of interacting with JIT code. With the "JIT compilation
12
// interface", V8 can tell GDB when it emits JIT code. Unfortunately to do so,
13
// it has to create platform-native object files, possibly with platform-native
14
// debugging information. Currently only ELF and Mach-O are supported, which
15
// limits this interface to Linux and Mac OS. This JIT compilation interface
16
// was introduced in GDB 7.0. V8 support can be enabled with the --gdbjit flag.
17
//
18
// The other way that GDB can know about V8 code is via the "custom JIT reader"
19
// interface, in which a GDB extension parses V8's private data to determine the
20
// function, file, and line of a JIT frame, and how to unwind those frames.
21
// This interface was introduced in GDB 7.6. This interface still relies on V8
22
// to register its code via the JIT compilation interface, but doesn't require
23
// that V8 create ELF images. Support will be added for this interface in the
24
// future.
25
//
26
27
namespace
v8
{
28
29
struct
JitCodeEvent;
30
31
namespace
internal
{
32
namespace
GDBJITInterface {
33
#ifdef ENABLE_GDB_JIT_INTERFACE
34
35
// JitCodeEventHandler that creates ELF/Mach-O objects and registers them with
36
// GDB.
37
void
EventHandler
(
const
v8::JitCodeEvent
* event);
38
39
// Expose some functions for unittests. These only exercise the logic to add
40
// AddressRegion to InstructionStreamMap, and checking for overlap. It does not
41
// touch the actual JITCodeEntry at all.
42
V8_EXPORT_PRIVATE
void
AddRegionForTesting(
const
base::AddressRegion region);
43
V8_EXPORT_PRIVATE
void
ClearCodeMapForTesting();
44
V8_EXPORT_PRIVATE
size_t
45
NumOverlapEntriesForTesting(
const
base::AddressRegion region);
46
47
#endif
48
}
// namespace GDBJITInterface
49
}
// namespace internal
50
}
// namespace v8
51
52
#endif
// V8_DIAGNOSTICS_GDB_JIT_H_
address-region.h
v8::internal::ETWJITInterface::EventHandler
void EventHandler(const JitCodeEvent *event)
Definition
etw-jit-win.cc:207
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8
Definition
api-arguments-inl.h:19
V8_EXPORT_PRIVATE
#define V8_EXPORT_PRIVATE
Definition
macros.h:460
v8::JitCodeEvent
Definition
v8-callbacks.h:42
src
diagnostics
gdb-jit.h
Generated on Sun Apr 6 2025 21:08:53 for v8 by
1.12.0