Move logging and diagnostics related source files
This also introduces a COMMON_OWNERS file, which is derived from the current top-level OWNERS file. It is to be used for parts of the codebase that is not sensitive to domain-specific expertise. NOPRESUBMIT=true TBR=verwaest@chromium.org Bug: v8:9247 Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987 Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61600}
This commit is contained in:
parent
8610cb5a32
commit
5f28539599
50
BUILD.gn
50
BUILD.gn
@ -2061,8 +2061,6 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/ast/variables.h",
|
||||
"src/bailout-reason.cc",
|
||||
"src/bailout-reason.h",
|
||||
"src/basic-block-profiler.cc",
|
||||
"src/basic-block-profiler.h",
|
||||
"src/bit-vector.cc",
|
||||
"src/bit-vector.h",
|
||||
"src/boxed-float.h",
|
||||
@ -2138,10 +2136,6 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/contexts-inl.h",
|
||||
"src/contexts.cc",
|
||||
"src/contexts.h",
|
||||
"src/counters-definitions.h",
|
||||
"src/counters-inl.h",
|
||||
"src/counters.cc",
|
||||
"src/counters.h",
|
||||
"src/cpu-features.h",
|
||||
"src/date/date.cc",
|
||||
"src/date/date.h",
|
||||
@ -2176,11 +2170,20 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/deoptimizer.h",
|
||||
"src/detachable-vector.cc",
|
||||
"src/detachable-vector.h",
|
||||
"src/disasm.h",
|
||||
"src/disassembler.cc",
|
||||
"src/disassembler.h",
|
||||
"src/eh-frame.cc",
|
||||
"src/eh-frame.h",
|
||||
"src/diagnostics/basic-block-profiler.cc",
|
||||
"src/diagnostics/basic-block-profiler.h",
|
||||
"src/diagnostics/disasm.h",
|
||||
"src/diagnostics/disassembler.cc",
|
||||
"src/diagnostics/disassembler.h",
|
||||
"src/diagnostics/eh-frame.cc",
|
||||
"src/diagnostics/eh-frame.h",
|
||||
"src/diagnostics/gdb-jit.cc",
|
||||
"src/diagnostics/gdb-jit.h",
|
||||
"src/diagnostics/objects-debug.cc",
|
||||
"src/diagnostics/objects-printer.cc",
|
||||
"src/diagnostics/perf-jit.cc",
|
||||
"src/diagnostics/perf-jit.h",
|
||||
"src/diagnostics/unwinder.cc",
|
||||
"src/elements-inl.h",
|
||||
"src/elements-kind.cc",
|
||||
"src/elements-kind.h",
|
||||
@ -2223,8 +2226,6 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/function-kind.h",
|
||||
"src/futex-emulation.cc",
|
||||
"src/futex-emulation.h",
|
||||
"src/gdb-jit.cc",
|
||||
"src/gdb-jit.h",
|
||||
"src/global-handles.cc",
|
||||
"src/global-handles.h",
|
||||
"src/handler-table.cc",
|
||||
@ -2395,11 +2396,15 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/layout-descriptor.h",
|
||||
"src/locked-queue-inl.h",
|
||||
"src/locked-queue.h",
|
||||
"src/log-inl.h",
|
||||
"src/log-utils.cc",
|
||||
"src/log-utils.h",
|
||||
"src/log.cc",
|
||||
"src/log.h",
|
||||
"src/logging/counters-definitions.h",
|
||||
"src/logging/counters-inl.h",
|
||||
"src/logging/counters.cc",
|
||||
"src/logging/counters.h",
|
||||
"src/logging/log-inl.h",
|
||||
"src/logging/log-utils.cc",
|
||||
"src/logging/log-utils.h",
|
||||
"src/logging/log.cc",
|
||||
"src/logging/log.h",
|
||||
"src/lookup-cache-inl.h",
|
||||
"src/lookup-cache.cc",
|
||||
"src/lookup-cache.h",
|
||||
@ -2446,9 +2451,7 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/numbers/strtod.h",
|
||||
"src/objects-body-descriptors-inl.h",
|
||||
"src/objects-body-descriptors.h",
|
||||
"src/objects-debug.cc",
|
||||
"src/objects-inl.h",
|
||||
"src/objects-printer.cc",
|
||||
"src/objects.cc",
|
||||
"src/objects.h",
|
||||
"src/objects/allocation-site-inl.h",
|
||||
@ -2649,8 +2652,6 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/parsing/token.h",
|
||||
"src/pending-compilation-error-handler.cc",
|
||||
"src/pending-compilation-error-handler.h",
|
||||
"src/perf-jit.cc",
|
||||
"src/perf-jit.h",
|
||||
"src/pointer-with-payload.h",
|
||||
"src/profiler/allocation-tracker.cc",
|
||||
"src/profiler/allocation-tracker.h",
|
||||
@ -2848,7 +2849,6 @@ v8_source_set("v8_base_without_compiler") {
|
||||
"src/unicode.h",
|
||||
"src/unoptimized-compilation-info.cc",
|
||||
"src/unoptimized-compilation-info.h",
|
||||
"src/unwinder.cc",
|
||||
"src/uri.cc",
|
||||
"src/uri.h",
|
||||
"src/utils-inl.h",
|
||||
@ -3043,11 +3043,11 @@ v8_source_set("v8_base_without_compiler") {
|
||||
}
|
||||
if (is_win) {
|
||||
sources += [
|
||||
"src/diagnostics/unwinding-info-win64.cc",
|
||||
"src/diagnostics/unwinding-info-win64.h",
|
||||
"src/trap-handler/handler-inside-win.cc",
|
||||
"src/trap-handler/handler-inside-win.h",
|
||||
"src/trap-handler/handler-outside-win.cc",
|
||||
"src/unwinding-info-win64.cc",
|
||||
"src/unwinding-info-win64.h",
|
||||
]
|
||||
}
|
||||
} else if (v8_current_cpu == "arm") {
|
||||
|
37
COMMON_OWNERS
Normal file
37
COMMON_OWNERS
Normal file
@ -0,0 +1,37 @@
|
||||
adamk@chromium.org
|
||||
ahaas@chromium.org
|
||||
bbudge@chromium.org
|
||||
binji@chromium.org
|
||||
bmeurer@chromium.org
|
||||
cbruni@chromium.org
|
||||
clemensh@chromium.org
|
||||
danno@chromium.org
|
||||
delphick@chromium.org
|
||||
gdeepti@chromium.org
|
||||
gsathya@chromium.org
|
||||
hablich@chromium.org
|
||||
hpayer@chromium.org
|
||||
ishell@chromium.org
|
||||
jarin@chromium.org
|
||||
jgruber@chromium.org
|
||||
jkummerow@chromium.org
|
||||
leszeks@chromium.org
|
||||
machenbach@chromium.org
|
||||
mathias@chromium.org
|
||||
marja@chromium.org
|
||||
mlippautz@chromium.org
|
||||
mslekova@chromium.org
|
||||
mstarzinger@chromium.org
|
||||
mvstanton@chromium.org
|
||||
mythria@chromium.org
|
||||
neis@chromium.org
|
||||
petermarshall@chromium.org
|
||||
rmcilroy@chromium.org
|
||||
sergiyb@chromium.org
|
||||
sigurds@chromium.org
|
||||
szuend@chromium.org
|
||||
tebbi@chromium.org
|
||||
titzer@chromium.org
|
||||
ulan@chromium.org
|
||||
verwaest@chromium.org
|
||||
yangguo@chromium.org
|
@ -6,13 +6,13 @@
|
||||
|
||||
#include "src/api-inl.h"
|
||||
#include "src/contexts.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/execution.h"
|
||||
#include "src/field-index-inl.h"
|
||||
#include "src/frames-inl.h"
|
||||
#include "src/heap/factory.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/messages.h"
|
||||
#include "src/objects/api-callbacks.h"
|
||||
#include "src/objects/js-array-inl.h"
|
||||
|
@ -28,7 +28,6 @@
|
||||
#include "src/compiler-dispatcher/compiler-dispatcher.h"
|
||||
#include "src/compiler.h"
|
||||
#include "src/contexts.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/cpu-features.h"
|
||||
#include "src/date/date.h"
|
||||
#include "src/debug/debug-coverage.h"
|
||||
@ -38,9 +37,9 @@
|
||||
#include "src/debug/liveedit.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/detachable-vector.h"
|
||||
#include "src/diagnostics/gdb-jit.h"
|
||||
#include "src/execution.h"
|
||||
#include "src/frames-inl.h"
|
||||
#include "src/gdb-jit.h"
|
||||
#include "src/global-handles.h"
|
||||
#include "src/globals.h"
|
||||
#include "src/heap/heap-inl.h"
|
||||
@ -50,6 +49,7 @@
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/json-parser.h"
|
||||
#include "src/json-stringifier.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/messages.h"
|
||||
#include "src/microtask-queue.h"
|
||||
#include "src/numbers/conversions-inl.h"
|
||||
@ -121,7 +121,7 @@
|
||||
#include "include/v8-wasm-trap-handler-win.h"
|
||||
#include "src/trap-handler/handler-inside-win.h"
|
||||
#if V8_TARGET_ARCH_X64
|
||||
#include "src/unwinding-info-win64.h"
|
||||
#include "src/diagnostics/unwinding-info-win64.h"
|
||||
#endif // V8_TARGET_ARCH_X64
|
||||
#endif // V8_OS_WIN
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "src/arm/constants-arm.h"
|
||||
#include "src/base/bits.h"
|
||||
#include "src/base/platform/platform.h"
|
||||
#include "src/disasm.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
#include "src/vector.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -12,12 +12,12 @@
|
||||
#include "src/base/utils/random-number-generator.h"
|
||||
#include "src/callable.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/external-reference-table.h"
|
||||
#include "src/frames-inl.h"
|
||||
#include "src/heap/heap-inl.h" // For MemoryChunk.
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/macro-assembler.h"
|
||||
#include "src/numbers/double.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include "src/assembler-inl.h"
|
||||
#include "src/base/bits.h"
|
||||
#include "src/base/lazy-instance.h"
|
||||
#include "src/disasm.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
#include "src/heap/combined-heap.h"
|
||||
#include "src/macro-assembler.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -13,7 +13,7 @@
|
||||
#include "src/arm64/disasm-arm64.h"
|
||||
#include "src/arm64/utils-arm64.h"
|
||||
#include "src/base/platform/platform.h"
|
||||
#include "src/disasm.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -3,7 +3,7 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/arm64/assembler-arm64-inl.h"
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -9,13 +9,13 @@
|
||||
#include "src/base/division-by-constant.h"
|
||||
#include "src/callable.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/external-reference-table.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames-inl.h"
|
||||
#include "src/heap/heap-inl.h" // For MemoryChunk.
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
#include "src/register-configuration.h"
|
||||
#include "src/runtime/runtime.h"
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include "src/arm64/decoder-arm64-inl.h"
|
||||
#include "src/assembler-inl.h"
|
||||
#include "src/base/lazy-instance.h"
|
||||
#include "src/disasm.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
#include "src/heap/combined-heap.h"
|
||||
#include "src/macro-assembler.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -11,11 +11,11 @@
|
||||
#include "src/base/optional.h"
|
||||
#include "src/base/platform/elapsed-timer.h"
|
||||
#include "src/compiler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/execution.h"
|
||||
#include "src/handles.h"
|
||||
#include "src/heap/factory.h"
|
||||
#include "src/isolate.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/message-template.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/heap-number-inl.h"
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
#include "src/assembler-inl.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/disassembler.h"
|
||||
#include "src/diagnostics/disassembler.h"
|
||||
#include "src/heap/heap-inl.h" // For MemoryAllocator. TODO(jkummerow): Drop.
|
||||
#include "src/isolate.h"
|
||||
#include "src/ostreams.h"
|
||||
|
@ -9,8 +9,8 @@
|
||||
#include "src/accessors.h"
|
||||
#include "src/ast/ast.h"
|
||||
#include "src/base/optional.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/message-template.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/module-inl.h"
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -6,8 +6,8 @@
|
||||
#include "src/api-natives.h"
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/templates.h"
|
||||
#include "src/prototype.h"
|
||||
|
@ -6,11 +6,11 @@
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/contexts.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/elements-inl.h"
|
||||
#include "src/global-handles.h"
|
||||
#include "src/isolate.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/lookup.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/hash-table-inl.h"
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // For ToBoolean. TODO(jkummerow): Drop.
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/maybe-handles-inl.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects-inl.h"
|
||||
#ifdef V8_INTL_SUPPORT
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // For ToBoolean.
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/frame-array-inl.h"
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/js-collection-inl.h"
|
||||
|
||||
|
@ -5,9 +5,9 @@
|
||||
#include "src/api-inl.h"
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/interface-types.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -11,8 +11,8 @@
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/code-stub-assembler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/interface-descriptors.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/macro-assembler.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/factory.h"
|
||||
#include "src/isolate.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/js-array-buffer-inl.h"
|
||||
|
@ -5,9 +5,9 @@
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/date/date.h"
|
||||
#include "src/date/dateparser-inl.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects-inl.h"
|
||||
#ifdef V8_INTL_SUPPORT
|
||||
|
@ -5,8 +5,8 @@
|
||||
#include "src/accessors.h"
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/messages.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/api-callbacks.h"
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/elements.h"
|
||||
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/compiler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/lookup.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/compiler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/uri.h"
|
||||
|
||||
|
@ -6,10 +6,10 @@
|
||||
#include "src/builtins/builtins-utils-gen.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-stub-assembler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // crbug.com/v8/8499
|
||||
#include "src/ic/accessor-assembler.h"
|
||||
#include "src/ic/keyed-store-generic.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/macro-assembler.h"
|
||||
#include "src/objects/debug-objects.h"
|
||||
#include "src/objects/shared-function-info.h"
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/interface-descriptors.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -12,9 +12,9 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/date/date.h"
|
||||
#include "src/elements.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/intl-objects.h"
|
||||
#include "src/objects/js-array-inl.h"
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/json-parser.h"
|
||||
#include "src/json-stringifier.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "src/builtins/builtins-utils.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects-inl.h"
|
||||
#ifdef V8_INTL_SUPPORT
|
||||
|
@ -5,9 +5,9 @@
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // For ToBoolean. TODO(jkummerow): Drop.
|
||||
#include "src/keys.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/lookup.h"
|
||||
#include "src/message-template.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -6,8 +6,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // For ToBoolean. TODO(jkummerow): Drop.
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include "src/builtins/builtins-utils.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/keys.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/lookup.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/property-descriptor.h"
|
||||
|
@ -10,8 +10,8 @@
|
||||
#include "src/builtins/growable-fixed-array-gen.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/code-stub-assembler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/factory-inl.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects/js-regexp-string-iterator.h"
|
||||
#include "src/objects/js-regexp.h"
|
||||
#include "src/objects/regexp-match-info.h"
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/regexp/jsregexp.h"
|
||||
#include "src/regexp/regexp-utils.h"
|
||||
|
@ -8,10 +8,10 @@
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/futex-emulation.h"
|
||||
#include "src/globals.h"
|
||||
#include "src/heap/factory.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/numbers/conversions-inl.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/js-array-buffer-inl.h"
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // For ToBoolean. TODO(jkummerow): Drop.
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects-inl.h"
|
||||
#ifdef V8_INTL_SUPPORT
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // For public_symbol_table().
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -5,9 +5,9 @@
|
||||
#include "src/api-inl.h"
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // For ToBoolean. TODO(jkummerow): Drop.
|
||||
#include "src/json-stringifier.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/elements.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/heap-number-inl.h"
|
||||
#include "src/objects/js-array-buffer-inl.h"
|
||||
|
@ -3,7 +3,7 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/builtins/builtins-utils-inl.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects/js-weak-refs-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -7,11 +7,11 @@
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/base/adapters.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -7,10 +7,10 @@
|
||||
#include "src/api-arguments.h"
|
||||
#include "src/base/adapters.h"
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/frame-constants.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/logging/counters.h"
|
||||
// For interpreter_entry_return_pc_offset. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
|
@ -5,11 +5,11 @@
|
||||
#include "src/code-stub-assembler.h"
|
||||
|
||||
#include "src/code-factory.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/frames-inl.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/function-kind.h"
|
||||
#include "src/heap/heap-inl.h" // For Page/MemoryChunk. TODO(jkummerow): Drop.
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects/api-callbacks.h"
|
||||
#include "src/objects/cell.h"
|
||||
#include "src/objects/descriptor-array.h"
|
||||
|
@ -4,10 +4,10 @@
|
||||
|
||||
#include "src/compilation-cache.h"
|
||||
|
||||
#include "src/counters.h"
|
||||
#include "src/globals.h"
|
||||
#include "src/heap/factory.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/compilation-cache-inl.h"
|
||||
#include "src/objects/slots.h"
|
||||
|
@ -8,9 +8,9 @@
|
||||
#include "src/base/template-utils.h"
|
||||
#include "src/cancelable-task.h"
|
||||
#include "src/compiler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/isolate.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/optimized-compilation-info.h"
|
||||
#include "src/tracing/trace-event.h"
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/interpreter/interpreter.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/log-inl.h"
|
||||
#include "src/logging/log-inl.h"
|
||||
#include "src/message-template.h"
|
||||
#include "src/objects/feedback-cell-inl.h"
|
||||
#include "src/objects/map.h"
|
||||
|
@ -9,10 +9,10 @@
|
||||
#include "src/accessors.h"
|
||||
#include "src/compiler/compilation-dependencies.h"
|
||||
#include "src/compiler/type-cache.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/field-index-inl.h"
|
||||
#include "src/field-type.h"
|
||||
#include "src/ic/call-optimization.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/cell-inl.h"
|
||||
#include "src/objects/module-inl.h"
|
||||
|
@ -5,7 +5,7 @@
|
||||
#ifndef V8_COMPILER_BACKEND_ARM_UNWINDING_INFO_WRITER_ARM_H_
|
||||
#define V8_COMPILER_BACKEND_ARM_UNWINDING_INFO_WRITER_ARM_H_
|
||||
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
#include "src/flags.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -5,7 +5,7 @@
|
||||
#ifndef V8_COMPILER_BACKEND_ARM64_UNWINDING_INFO_WRITER_ARM64_H_
|
||||
#define V8_COMPILER_BACKEND_ARM64_UNWINDING_INFO_WRITER_ARM64_H_
|
||||
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
#include "src/flags.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -11,10 +11,10 @@
|
||||
#include "src/compiler/linkage.h"
|
||||
#include "src/compiler/pipeline.h"
|
||||
#include "src/compiler/wasm-compiler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
#include "src/frames.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/macro-assembler-inl.h"
|
||||
#include "src/objects/smi.h"
|
||||
#include "src/optimized-compilation-info.h"
|
||||
|
@ -5,7 +5,7 @@
|
||||
#ifndef V8_COMPILER_BACKEND_X64_UNWINDING_INFO_WRITER_X64_H_
|
||||
#define V8_COMPILER_BACKEND_X64_UNWINDING_INFO_WRITER_X64_H_
|
||||
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
#include "src/flags.h"
|
||||
|
||||
namespace v8 {
|
||||
|
@ -6,7 +6,7 @@
|
||||
#define V8_COMPILER_BASIC_BLOCK_INSTRUMENTOR_H_
|
||||
|
||||
#include "src/allocation.h"
|
||||
#include "src/basic-block-profiler.h"
|
||||
#include "src/diagnostics/basic-block-profiler.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -21,9 +21,9 @@
|
||||
#include "src/compiler/property-access-builder.h"
|
||||
#include "src/compiler/simplified-operator.h"
|
||||
#include "src/compiler/type-cache.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/feedback-vector-inl.h"
|
||||
#include "src/ic/call-optimization.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/arguments-inl.h"
|
||||
#include "src/objects/js-array-buffer-inl.h"
|
||||
|
@ -13,7 +13,7 @@
|
||||
#include "src/compiler/node-matchers.h"
|
||||
#include "src/compiler/node-properties.h"
|
||||
#include "src/compiler/operator-properties.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/js-generator.h"
|
||||
|
||||
|
@ -76,7 +76,7 @@
|
||||
#include "src/compiler/verifier.h"
|
||||
#include "src/compiler/wasm-compiler.h"
|
||||
#include "src/compiler/zone-stats.h"
|
||||
#include "src/disassembler.h"
|
||||
#include "src/diagnostics/disassembler.h"
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/objects/shared-function-info.h"
|
||||
|
@ -31,11 +31,11 @@
|
||||
#include "src/compiler/pipeline.h"
|
||||
#include "src/compiler/simd-scalar-lowering.h"
|
||||
#include "src/compiler/zone-stats.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/factory.h"
|
||||
#include "src/interface-descriptors.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/objects/heap-number.h"
|
||||
#include "src/optimized-compilation-info.h"
|
||||
#include "src/tracing/trace-event.h"
|
||||
|
@ -27,11 +27,11 @@
|
||||
#include "src/base/platform/platform.h"
|
||||
#include "src/base/platform/time.h"
|
||||
#include "src/base/sys-info.h"
|
||||
#include "src/basic-block-profiler.h"
|
||||
#include "src/d8/d8-console.h"
|
||||
#include "src/d8/d8-platforms.h"
|
||||
#include "src/d8/d8.h"
|
||||
#include "src/debug/debug-interface.h"
|
||||
#include "src/diagnostics/basic-block-profiler.h"
|
||||
#include "src/interpreter/interpreter.h"
|
||||
#include "src/msan.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -15,7 +15,6 @@
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/compilation-cache.h"
|
||||
#include "src/compiler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/debug/debug-evaluate.h"
|
||||
#include "src/debug/liveedit.h"
|
||||
#include "src/deoptimizer.h"
|
||||
@ -29,6 +28,7 @@
|
||||
#include "src/interpreter/bytecode-array-iterator.h"
|
||||
#include "src/interpreter/interpreter.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/message-template.h"
|
||||
#include "src/objects/api-callbacks-inl.h"
|
||||
#include "src/objects/debug-objects-inl.h"
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/frames-inl.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/hash-table-inl.h"
|
||||
#include "src/objects/js-generator-inl.h"
|
||||
|
@ -10,13 +10,13 @@
|
||||
#include "src/assembler-inl.h"
|
||||
#include "src/ast/prettyprinter.h"
|
||||
#include "src/callable.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/disasm.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
#include "src/frames-inl.h"
|
||||
#include "src/global-handles.h"
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/interpreter/interpreter.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/macro-assembler.h"
|
||||
#include "src/objects/debug-objects-inl.h"
|
||||
#include "src/objects/heap-number-inl.h"
|
||||
|
1
src/diagnostics/OWNERS
Normal file
1
src/diagnostics/OWNERS
Normal file
@ -0,0 +1 @@
|
||||
file://COMMON_OWNERS
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/basic-block-profiler.h"
|
||||
#include "src/diagnostics/basic-block-profiler.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <numeric>
|
||||
@ -51,7 +51,6 @@ intptr_t BasicBlockProfiler::Data::GetCounterAddress(size_t offset) {
|
||||
return reinterpret_cast<intptr_t>(&(counts_[offset]));
|
||||
}
|
||||
|
||||
|
||||
void BasicBlockProfiler::Data::ResetCounts() {
|
||||
for (size_t i = 0; i < n_blocks_; ++i) {
|
||||
counts_[i] = 0;
|
||||
@ -65,21 +64,18 @@ BasicBlockProfiler::Data* BasicBlockProfiler::NewData(size_t n_blocks) {
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
BasicBlockProfiler::~BasicBlockProfiler() {
|
||||
for (DataList::iterator i = data_list_.begin(); i != data_list_.end(); ++i) {
|
||||
delete (*i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BasicBlockProfiler::ResetCounts() {
|
||||
for (DataList::iterator i = data_list_.begin(); i != data_list_.end(); ++i) {
|
||||
(*i)->ResetCounts();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const BasicBlockProfiler& p) {
|
||||
os << "---- Start Profiling Data ----" << std::endl;
|
||||
typedef BasicBlockProfiler::DataList::const_iterator iterator;
|
||||
@ -90,7 +86,6 @@ std::ostream& operator<<(std::ostream& os, const BasicBlockProfiler& p) {
|
||||
return os;
|
||||
}
|
||||
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const BasicBlockProfiler::Data& d) {
|
||||
int block_count_sum = std::accumulate(d.counts_.begin(), d.counts_.end(), 0);
|
||||
if (block_count_sum == 0) return os;
|
||||
@ -112,8 +107,7 @@ std::ostream& operator<<(std::ostream& os, const BasicBlockProfiler::Data& d) {
|
||||
std::sort(pairs.begin(), pairs.end(),
|
||||
[=](std::pair<int32_t, uint32_t> left,
|
||||
std::pair<int32_t, uint32_t> right) {
|
||||
if (right.second == left.second)
|
||||
return left.first < right.first;
|
||||
if (right.second == left.second) return left.first < right.first;
|
||||
return right.second < left.second;
|
||||
});
|
||||
for (auto it : pairs) {
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef V8_BASIC_BLOCK_PROFILER_H_
|
||||
#define V8_BASIC_BLOCK_PROFILER_H_
|
||||
#ifndef V8_DIAGNOSTICS_BASIC_BLOCK_PROFILER_H_
|
||||
#define V8_DIAGNOSTICS_BASIC_BLOCK_PROFILER_H_
|
||||
|
||||
#include <iosfwd>
|
||||
#include <list>
|
||||
@ -77,4 +77,4 @@ std::ostream& operator<<(std::ostream& os, const BasicBlockProfiler::Data& s);
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
#endif // V8_BASIC_BLOCK_PROFILER_H_
|
||||
#endif // V8_DIAGNOSTICS_BASIC_BLOCK_PROFILER_H_
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef V8_DISASM_H_
|
||||
#define V8_DISASM_H_
|
||||
#ifndef V8_DIAGNOSTICS_DISASM_H_
|
||||
#define V8_DIAGNOSTICS_DISASM_H_
|
||||
|
||||
#include "src/vector.h"
|
||||
|
||||
@ -78,4 +78,4 @@ class Disassembler {
|
||||
|
||||
} // namespace disasm
|
||||
|
||||
#endif // V8_DISASM_H_
|
||||
#endif // V8_DIAGNOSTICS_DISASM_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/disassembler.h"
|
||||
#include "src/diagnostics/disassembler.h"
|
||||
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
@ -13,7 +13,7 @@
|
||||
#include "src/code-reference.h"
|
||||
#include "src/debug/debug.h"
|
||||
#include "src/deoptimizer.h"
|
||||
#include "src/disasm.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
#include "src/ic/ic.h"
|
||||
#include "src/isolate-data.h"
|
||||
#include "src/macro-assembler.h"
|
||||
@ -30,7 +30,7 @@ namespace internal {
|
||||
|
||||
#ifdef ENABLE_DISASSEMBLER
|
||||
|
||||
class V8NameConverter: public disasm::NameConverter {
|
||||
class V8NameConverter : public disasm::NameConverter {
|
||||
public:
|
||||
explicit V8NameConverter(Isolate* isolate, CodeReference code = {})
|
||||
: isolate_(isolate), code_(code) {}
|
||||
@ -108,7 +108,6 @@ const char* V8NameConverter::NameOfAddress(byte* pc) const {
|
||||
return disasm::NameConverter::NameOfAddress(pc);
|
||||
}
|
||||
|
||||
|
||||
const char* V8NameConverter::NameInCode(byte* addr) const {
|
||||
// The V8NameConverter is used for well known code, so we can "safely"
|
||||
// dereference pointers in generated code.
|
||||
@ -188,7 +187,6 @@ static void DumpBuffer(std::ostream* os, StringBuilder* out) {
|
||||
out->Reset();
|
||||
}
|
||||
|
||||
|
||||
static const int kOutBufferSize = 2048 + String::kMaxShortPrintLength;
|
||||
static const int kRelocInfoPosition = 57;
|
||||
|
||||
@ -293,8 +291,7 @@ static int DecodeIt(Isolate* isolate, ExternalReferenceEncoder* ref_encoder,
|
||||
// First decode instruction so that we know its length.
|
||||
byte* prev_pc = pc;
|
||||
if (constants > 0) {
|
||||
SNPrintF(decode_buffer,
|
||||
"%08x constant",
|
||||
SNPrintF(decode_buffer, "%08x constant",
|
||||
*reinterpret_cast<int32_t*>(pc));
|
||||
constants--;
|
||||
pc += 4;
|
||||
@ -381,8 +378,7 @@ static int DecodeIt(Isolate* isolate, ExternalReferenceEncoder* ref_encoder,
|
||||
// already, check if we can find some RelocInfo for the target address in
|
||||
// the constant pool.
|
||||
if (pcs.empty() && !code.is_null()) {
|
||||
RelocInfo dummy_rinfo(reinterpret_cast<Address>(prev_pc),
|
||||
RelocInfo::NONE,
|
||||
RelocInfo dummy_rinfo(reinterpret_cast<Address>(prev_pc), RelocInfo::NONE,
|
||||
0, Code());
|
||||
if (dummy_rinfo.IsInConstantPool()) {
|
||||
Address constant_pool_entry_address =
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef V8_DISASSEMBLER_H_
|
||||
#define V8_DISASSEMBLER_H_
|
||||
#ifndef V8_DIAGNOSTICS_DISASSEMBLER_H_
|
||||
#define V8_DIAGNOSTICS_DISASSEMBLER_H_
|
||||
|
||||
#include "src/allocation.h"
|
||||
#include "src/code-reference.h"
|
||||
@ -29,4 +29,4 @@ class Disassembler : public AllStatic {
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
#endif // V8_DISASSEMBLER_H_
|
||||
#endif // V8_DIAGNOSTICS_DISASSEMBLER_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
|
||||
#include <iomanip>
|
||||
#include <ostream>
|
||||
@ -493,8 +493,9 @@ void EhFrameDisassembler::DumpDwarfDirectives(std::ostream& stream, // NOLINT
|
||||
if (((bytecode >> EhFrameConstants::kSavedRegisterMaskSize) & 0xFF) ==
|
||||
EhFrameConstants::kSavedRegisterTag) {
|
||||
int32_t decoded_offset = eh_frame_iterator.GetNextULeb128();
|
||||
stream << "| " << DwarfRegisterCodeToString(
|
||||
bytecode & EhFrameConstants::kLocationMask)
|
||||
stream << "| "
|
||||
<< DwarfRegisterCodeToString(bytecode &
|
||||
EhFrameConstants::kLocationMask)
|
||||
<< " saved at base" << std::showpos
|
||||
<< decoded_offset * EhFrameConstants::kDataAlignmentFactor
|
||||
<< std::noshowpos << '\n';
|
||||
@ -503,8 +504,9 @@ void EhFrameDisassembler::DumpDwarfDirectives(std::ostream& stream, // NOLINT
|
||||
|
||||
if (((bytecode >> EhFrameConstants::kFollowInitialRuleMaskSize) & 0xFF) ==
|
||||
EhFrameConstants::kFollowInitialRuleTag) {
|
||||
stream << "| " << DwarfRegisterCodeToString(
|
||||
bytecode & EhFrameConstants::kLocationMask)
|
||||
stream << "| "
|
||||
<< DwarfRegisterCodeToString(bytecode &
|
||||
EhFrameConstants::kLocationMask)
|
||||
<< " follows rule in CIE\n";
|
||||
continue;
|
||||
}
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef V8_EH_FRAME_H_
|
||||
#define V8_EH_FRAME_H_
|
||||
#ifndef V8_DIAGNOSTICS_EH_FRAME_H_
|
||||
#define V8_DIAGNOSTICS_EH_FRAME_H_
|
||||
|
||||
#include "src/base/compiler-specific.h"
|
||||
#include "src/globals.h"
|
||||
@ -305,4 +305,4 @@ class EhFrameDisassembler final {
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
#endif // V8_EH_FRAME_H_
|
||||
#endif // V8_DIAGNOSTICS_EH_FRAME_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/gdb-jit.h"
|
||||
#include "src/diagnostics/gdb-jit.h"
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
@ -47,58 +47,47 @@ class Writer {
|
||||
: debug_object_(debug_object),
|
||||
position_(0),
|
||||
capacity_(1024),
|
||||
buffer_(reinterpret_cast<byte*>(malloc(capacity_))) {
|
||||
}
|
||||
buffer_(reinterpret_cast<byte*>(malloc(capacity_))) {}
|
||||
|
||||
~Writer() {
|
||||
free(buffer_);
|
||||
}
|
||||
~Writer() { free(buffer_); }
|
||||
|
||||
uintptr_t position() const {
|
||||
return position_;
|
||||
}
|
||||
uintptr_t position() const { return position_; }
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
class Slot {
|
||||
public:
|
||||
Slot(Writer* w, uintptr_t offset) : w_(w), offset_(offset) { }
|
||||
Slot(Writer* w, uintptr_t offset) : w_(w), offset_(offset) {}
|
||||
|
||||
T* operator-> () {
|
||||
return w_->RawSlotAt<T>(offset_);
|
||||
}
|
||||
T* operator->() { return w_->RawSlotAt<T>(offset_); }
|
||||
|
||||
void set(const T& value) {
|
||||
*w_->RawSlotAt<T>(offset_) = value;
|
||||
}
|
||||
void set(const T& value) { *w_->RawSlotAt<T>(offset_) = value; }
|
||||
|
||||
Slot<T> at(int i) {
|
||||
return Slot<T>(w_, offset_ + sizeof(T) * i);
|
||||
}
|
||||
Slot<T> at(int i) { return Slot<T>(w_, offset_ + sizeof(T) * i); }
|
||||
|
||||
private:
|
||||
Writer* w_;
|
||||
uintptr_t offset_;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
void Write(const T& val) {
|
||||
Ensure(position_ + sizeof(T));
|
||||
*RawSlotAt<T>(position_) = val;
|
||||
position_ += sizeof(T);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
Slot<T> SlotAt(uintptr_t offset) {
|
||||
Ensure(offset + sizeof(T));
|
||||
return Slot<T>(this, offset);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
Slot<T> CreateSlotHere() {
|
||||
return CreateSlotsHere<T>(1);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
Slot<T> CreateSlotsHere(uint32_t count) {
|
||||
uintptr_t slot_position = position_;
|
||||
position_ += sizeof(T) * count;
|
||||
@ -158,9 +147,10 @@ class Writer {
|
||||
}
|
||||
|
||||
private:
|
||||
template<typename T> friend class Slot;
|
||||
template <typename T>
|
||||
friend class Slot;
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
T* RawSlotAt(uintptr_t offset) {
|
||||
DCHECK(offset < capacity_ && offset + sizeof(T) <= capacity_);
|
||||
return reinterpret_cast<T*>(&buffer_[offset]);
|
||||
@ -174,7 +164,7 @@ class Writer {
|
||||
|
||||
class ELFStringTable;
|
||||
|
||||
template<typename THeader>
|
||||
template <typename THeader>
|
||||
class DebugSectionBase : public ZoneObject {
|
||||
public:
|
||||
virtual ~DebugSectionBase() = default;
|
||||
@ -191,14 +181,11 @@ class DebugSectionBase : public ZoneObject {
|
||||
}
|
||||
}
|
||||
|
||||
virtual bool WriteBodyInternal(Writer* writer) {
|
||||
return false;
|
||||
}
|
||||
virtual bool WriteBodyInternal(Writer* writer) { return false; }
|
||||
|
||||
typedef THeader Header;
|
||||
};
|
||||
|
||||
|
||||
struct MachOSectionHeader {
|
||||
char sectname[16];
|
||||
char segname[16];
|
||||
@ -218,7 +205,6 @@ struct MachOSectionHeader {
|
||||
uint32_t reserved2;
|
||||
};
|
||||
|
||||
|
||||
class MachOSection : public DebugSectionBase<MachOSectionHeader> {
|
||||
public:
|
||||
enum Type {
|
||||
@ -265,7 +251,6 @@ class MachOSection : public DebugSectionBase<MachOSectionHeader> {
|
||||
uint32_t flags_;
|
||||
};
|
||||
|
||||
|
||||
struct ELFSectionHeader {
|
||||
uint32_t name;
|
||||
uint32_t type;
|
||||
@ -279,7 +264,6 @@ struct ELFSectionHeader {
|
||||
uintptr_t entry_size;
|
||||
};
|
||||
|
||||
|
||||
#if defined(__ELF)
|
||||
class ELFSection : public DebugSectionBase<ELFSectionHeader> {
|
||||
public:
|
||||
@ -303,16 +287,12 @@ class ELFSection : public DebugSectionBase<ELFSectionHeader> {
|
||||
TYPE_HIUSER = 0xFFFFFFFF
|
||||
};
|
||||
|
||||
enum Flags {
|
||||
FLAG_WRITE = 1,
|
||||
FLAG_ALLOC = 2,
|
||||
FLAG_EXEC = 4
|
||||
};
|
||||
enum Flags { FLAG_WRITE = 1, FLAG_ALLOC = 2, FLAG_EXEC = 4 };
|
||||
|
||||
enum SpecialIndexes { INDEX_ABSOLUTE = 0xFFF1 };
|
||||
|
||||
ELFSection(const char* name, Type type, uintptr_t align)
|
||||
: name_(name), type_(type), align_(align) { }
|
||||
: name_(name), type_(type), align_(align) {}
|
||||
|
||||
~ELFSection() override = default;
|
||||
|
||||
@ -351,7 +331,6 @@ class ELFSection : public DebugSectionBase<ELFSectionHeader> {
|
||||
};
|
||||
#endif // defined(__ELF)
|
||||
|
||||
|
||||
#if defined(__MACH_O)
|
||||
class MachOTextSection : public MachOSection {
|
||||
public:
|
||||
@ -376,22 +355,17 @@ class MachOTextSection : public MachOSection {
|
||||
};
|
||||
#endif // defined(__MACH_O)
|
||||
|
||||
|
||||
#if defined(__ELF)
|
||||
class FullHeaderELFSection : public ELFSection {
|
||||
public:
|
||||
FullHeaderELFSection(const char* name,
|
||||
Type type,
|
||||
uintptr_t align,
|
||||
uintptr_t addr,
|
||||
uintptr_t offset,
|
||||
uintptr_t size,
|
||||
FullHeaderELFSection(const char* name, Type type, uintptr_t align,
|
||||
uintptr_t addr, uintptr_t offset, uintptr_t size,
|
||||
uintptr_t flags)
|
||||
: ELFSection(name, type, align),
|
||||
addr_(addr),
|
||||
offset_(offset),
|
||||
size_(size),
|
||||
flags_(flags) { }
|
||||
flags_(flags) {}
|
||||
|
||||
protected:
|
||||
void PopulateHeader(Writer::Slot<Header> header) override {
|
||||
@ -409,7 +383,6 @@ class FullHeaderELFSection : public ELFSection {
|
||||
uintptr_t flags_;
|
||||
};
|
||||
|
||||
|
||||
class ELFStringTable : public ELFSection {
|
||||
public:
|
||||
explicit ELFStringTable(const char* name)
|
||||
@ -458,7 +431,6 @@ class ELFStringTable : public ELFSection {
|
||||
uintptr_t size_;
|
||||
};
|
||||
|
||||
|
||||
void ELFSection::PopulateHeader(Writer::Slot<ELFSection::Header> header,
|
||||
ELFStringTable* strtab) {
|
||||
header->name = static_cast<uint32_t>(strtab->Add(name_));
|
||||
@ -468,7 +440,6 @@ void ELFSection::PopulateHeader(Writer::Slot<ELFSection::Header> header,
|
||||
}
|
||||
#endif // defined(__ELF)
|
||||
|
||||
|
||||
#if defined(__MACH_O)
|
||||
class MachO {
|
||||
public:
|
||||
@ -482,9 +453,8 @@ class MachO {
|
||||
void Write(Writer* w, uintptr_t code_start, uintptr_t code_size) {
|
||||
Writer::Slot<MachOHeader> header = WriteHeader(w);
|
||||
uintptr_t load_command_start = w->position();
|
||||
Writer::Slot<MachOSegmentCommand> cmd = WriteSegmentCommand(w,
|
||||
code_start,
|
||||
code_size);
|
||||
Writer::Slot<MachOSegmentCommand> cmd =
|
||||
WriteSegmentCommand(w, code_start, code_size);
|
||||
WriteSections(w, cmd, header, load_command_start);
|
||||
}
|
||||
|
||||
@ -528,18 +498,17 @@ class MachO {
|
||||
LC_SEGMENT_64 = 0x00000019u
|
||||
};
|
||||
|
||||
|
||||
Writer::Slot<MachOHeader> WriteHeader(Writer* w) {
|
||||
DCHECK_EQ(w->position(), 0);
|
||||
Writer::Slot<MachOHeader> header = w->CreateSlotHere<MachOHeader>();
|
||||
#if V8_TARGET_ARCH_IA32
|
||||
header->magic = 0xFEEDFACEu;
|
||||
header->cputype = 7; // i386
|
||||
header->cputype = 7; // i386
|
||||
header->cpusubtype = 3; // CPU_SUBTYPE_I386_ALL
|
||||
#elif V8_TARGET_ARCH_X64
|
||||
header->magic = 0xFEEDFACFu;
|
||||
header->cputype = 7 | 0x01000000; // i386 | 64-bit ABI
|
||||
header->cpusubtype = 3; // CPU_SUBTYPE_I386_ALL
|
||||
header->cpusubtype = 3; // CPU_SUBTYPE_I386_ALL
|
||||
header->reserved = 0;
|
||||
#else
|
||||
#error Unsupported target architecture.
|
||||
@ -551,7 +520,6 @@ class MachO {
|
||||
return header;
|
||||
}
|
||||
|
||||
|
||||
Writer::Slot<MachOSegmentCommand> WriteSegmentCommand(Writer* w,
|
||||
uintptr_t code_start,
|
||||
uintptr_t code_size) {
|
||||
@ -571,14 +539,12 @@ class MachO {
|
||||
cmd->flags = 0;
|
||||
cmd->nsects = static_cast<uint32_t>(sections_.size());
|
||||
memset(cmd->segname, 0, 16);
|
||||
cmd->cmdsize = sizeof(MachOSegmentCommand) + sizeof(MachOSection::Header) *
|
||||
cmd->nsects;
|
||||
cmd->cmdsize = sizeof(MachOSegmentCommand) +
|
||||
sizeof(MachOSection::Header) * cmd->nsects;
|
||||
return cmd;
|
||||
}
|
||||
|
||||
|
||||
void WriteSections(Writer* w,
|
||||
Writer::Slot<MachOSegmentCommand> cmd,
|
||||
void WriteSections(Writer* w, Writer::Slot<MachOSegmentCommand> cmd,
|
||||
Writer::Slot<MachOHeader> header,
|
||||
uintptr_t load_command_start) {
|
||||
Writer::Slot<MachOSection::Header> headers =
|
||||
@ -600,7 +566,6 @@ class MachO {
|
||||
};
|
||||
#endif // defined(__MACH_O)
|
||||
|
||||
|
||||
#if defined(__ELF)
|
||||
class ELF {
|
||||
public:
|
||||
@ -641,14 +606,13 @@ class ELF {
|
||||
uint16_t sht_strtab_index;
|
||||
};
|
||||
|
||||
|
||||
void WriteHeader(Writer* w) {
|
||||
DCHECK_EQ(w->position(), 0);
|
||||
Writer::Slot<ELFHeader> header = w->CreateSlotHere<ELFHeader>();
|
||||
#if (V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM)
|
||||
const uint8_t ident[16] = {0x7F, 'E', 'L', 'F', 1, 1, 1, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0};
|
||||
#elif(V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_64_BIT) || \
|
||||
#elif (V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_64_BIT) || \
|
||||
(V8_TARGET_ARCH_PPC64 && V8_TARGET_LITTLE_ENDIAN)
|
||||
const uint8_t ident[16] = {0x7F, 'E', 'L', 'F', 2, 1, 1, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0};
|
||||
@ -763,39 +727,27 @@ class ELFSymbol {
|
||||
BIND_HIPROC = 15
|
||||
};
|
||||
|
||||
ELFSymbol(const char* name,
|
||||
uintptr_t value,
|
||||
uintptr_t size,
|
||||
Binding binding,
|
||||
Type type,
|
||||
uint16_t section)
|
||||
ELFSymbol(const char* name, uintptr_t value, uintptr_t size, Binding binding,
|
||||
Type type, uint16_t section)
|
||||
: name(name),
|
||||
value(value),
|
||||
size(size),
|
||||
info((binding << 4) | type),
|
||||
other(0),
|
||||
section(section) {
|
||||
}
|
||||
section(section) {}
|
||||
|
||||
Binding binding() const {
|
||||
return static_cast<Binding>(info >> 4);
|
||||
}
|
||||
#if (V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM || \
|
||||
Binding binding() const { return static_cast<Binding>(info >> 4); }
|
||||
#if (V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM || \
|
||||
(V8_TARGET_ARCH_S390 && V8_TARGET_ARCH_32_BIT))
|
||||
struct SerializedLayout {
|
||||
SerializedLayout(uint32_t name,
|
||||
uintptr_t value,
|
||||
uintptr_t size,
|
||||
Binding binding,
|
||||
Type type,
|
||||
uint16_t section)
|
||||
SerializedLayout(uint32_t name, uintptr_t value, uintptr_t size,
|
||||
Binding binding, Type type, uint16_t section)
|
||||
: name(name),
|
||||
value(value),
|
||||
size(size),
|
||||
info((binding << 4) | type),
|
||||
other(0),
|
||||
section(section) {
|
||||
}
|
||||
section(section) {}
|
||||
|
||||
uint32_t name;
|
||||
uintptr_t value;
|
||||
@ -804,22 +756,17 @@ class ELFSymbol {
|
||||
uint8_t other;
|
||||
uint16_t section;
|
||||
};
|
||||
#elif(V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_64_BIT) || \
|
||||
#elif (V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_64_BIT) || \
|
||||
(V8_TARGET_ARCH_PPC64 && V8_OS_LINUX) || V8_TARGET_ARCH_S390X
|
||||
struct SerializedLayout {
|
||||
SerializedLayout(uint32_t name,
|
||||
uintptr_t value,
|
||||
uintptr_t size,
|
||||
Binding binding,
|
||||
Type type,
|
||||
uint16_t section)
|
||||
SerializedLayout(uint32_t name, uintptr_t value, uintptr_t size,
|
||||
Binding binding, Type type, uint16_t section)
|
||||
: name(name),
|
||||
info((binding << 4) | type),
|
||||
other(0),
|
||||
section(section),
|
||||
value(value),
|
||||
size(size) {
|
||||
}
|
||||
size(size) {}
|
||||
|
||||
uint32_t name;
|
||||
uint8_t info;
|
||||
@ -849,7 +796,6 @@ class ELFSymbol {
|
||||
uint16_t section;
|
||||
};
|
||||
|
||||
|
||||
class ELFSymbolTable : public ELFSection {
|
||||
public:
|
||||
ELFSymbolTable(const char* name, Zone* zone)
|
||||
@ -872,12 +818,8 @@ class ELFSymbolTable : public ELFSection {
|
||||
ELFStringTable* strtab =
|
||||
static_cast<ELFStringTable*>(w->debug_object()->SectionAt(index() + 1));
|
||||
strtab->AttachWriter(w);
|
||||
symbols.at(0).set(ELFSymbol::SerializedLayout(0,
|
||||
0,
|
||||
0,
|
||||
ELFSymbol::BIND_LOCAL,
|
||||
ELFSymbol::TYPE_NOTYPE,
|
||||
0));
|
||||
symbols.at(0).set(ELFSymbol::SerializedLayout(
|
||||
0, 0, 0, ELFSymbol::BIND_LOCAL, ELFSymbol::TYPE_NOTYPE, 0));
|
||||
WriteSymbolsList(&locals_, symbols.at(1), strtab);
|
||||
WriteSymbolsList(&globals_,
|
||||
symbols.at(static_cast<uint32_t>(locals_.size() + 1)),
|
||||
@ -917,7 +859,6 @@ class ELFSymbolTable : public ELFSection {
|
||||
};
|
||||
#endif // defined(__ELF)
|
||||
|
||||
|
||||
class LineInfo : public Malloced {
|
||||
public:
|
||||
void SetPosition(intptr_t pc, int pos, bool is_statement) {
|
||||
@ -956,9 +897,7 @@ class CodeDescription {
|
||||
LineInfo* lineinfo)
|
||||
: name_(name), code_(code), shared_info_(shared), lineinfo_(lineinfo) {}
|
||||
|
||||
const char* name() const {
|
||||
return name_;
|
||||
}
|
||||
const char* name() const { return name_; }
|
||||
|
||||
LineInfo* lineinfo() const { return lineinfo_; }
|
||||
|
||||
@ -982,9 +921,7 @@ class CodeDescription {
|
||||
return static_cast<uintptr_t>(code_->InstructionEnd());
|
||||
}
|
||||
|
||||
uintptr_t CodeSize() const {
|
||||
return CodeEnd() - CodeStart();
|
||||
}
|
||||
uintptr_t CodeSize() const { return CodeEnd() - CodeStart(); }
|
||||
|
||||
bool has_script() {
|
||||
return !shared_info_.is_null() && shared_info_->script()->IsScript();
|
||||
@ -1037,8 +974,8 @@ class CodeDescription {
|
||||
#if defined(__ELF)
|
||||
static void CreateSymbolsTable(CodeDescription* desc, Zone* zone, ELF* elf,
|
||||
size_t text_section_index) {
|
||||
ELFSymbolTable* symtab = new(zone) ELFSymbolTable(".symtab", zone);
|
||||
ELFStringTable* strtab = new(zone) ELFStringTable(".strtab");
|
||||
ELFSymbolTable* symtab = new (zone) ELFSymbolTable(".symtab", zone);
|
||||
ELFStringTable* strtab = new (zone) ELFStringTable(".strtab");
|
||||
|
||||
// Symbol table should be followed by the linked string table.
|
||||
elf->AddSection(symtab);
|
||||
@ -1053,19 +990,17 @@ static void CreateSymbolsTable(CodeDescription* desc, Zone* zone, ELF* elf,
|
||||
}
|
||||
#endif // defined(__ELF)
|
||||
|
||||
|
||||
class DebugInfoSection : public DebugSection {
|
||||
public:
|
||||
explicit DebugInfoSection(CodeDescription* desc)
|
||||
#if defined(__ELF)
|
||||
: ELFSection(".debug_info", TYPE_PROGBITS, 1),
|
||||
#else
|
||||
: MachOSection("__debug_info",
|
||||
"__DWARF",
|
||||
1,
|
||||
: MachOSection("__debug_info", "__DWARF", 1,
|
||||
MachOSection::S_REGULAR | MachOSection::S_ATTR_DEBUG),
|
||||
#endif
|
||||
desc_(desc) { }
|
||||
desc_(desc) {
|
||||
}
|
||||
|
||||
// DWARF2 standard
|
||||
enum DWARF2LocationOp {
|
||||
@ -1104,10 +1039,7 @@ class DebugInfoSection : public DebugSection {
|
||||
DW_OP_fbreg = 0x91 // 1 param: SLEB128 offset
|
||||
};
|
||||
|
||||
enum DWARF2Encoding {
|
||||
DW_ATE_ADDRESS = 0x1,
|
||||
DW_ATE_SIGNED = 0x5
|
||||
};
|
||||
enum DWARF2Encoding { DW_ATE_ADDRESS = 0x1, DW_ATE_SIGNED = 0x5 };
|
||||
|
||||
bool WriteBodyInternal(Writer* w) override {
|
||||
uintptr_t cu_start = w->position();
|
||||
@ -1193,9 +1125,7 @@ class DebugInfoSection : public DebugSection {
|
||||
w->WriteULEB128(current_abbreviation++);
|
||||
w->WriteString(".native_context");
|
||||
|
||||
for (int context_slot = 0;
|
||||
context_slot < context_slots;
|
||||
++context_slot) {
|
||||
for (int context_slot = 0; context_slot < context_slots; ++context_slot) {
|
||||
w->WriteULEB128(current_abbreviation++);
|
||||
builder.Reset();
|
||||
builder.AddFormatted("context_slot%d", context_slot + internal_slots);
|
||||
@ -1236,19 +1166,17 @@ class DebugInfoSection : public DebugSection {
|
||||
CodeDescription* desc_;
|
||||
};
|
||||
|
||||
|
||||
class DebugAbbrevSection : public DebugSection {
|
||||
public:
|
||||
explicit DebugAbbrevSection(CodeDescription* desc)
|
||||
#ifdef __ELF
|
||||
: ELFSection(".debug_abbrev", TYPE_PROGBITS, 1),
|
||||
#else
|
||||
: MachOSection("__debug_abbrev",
|
||||
"__DWARF",
|
||||
1,
|
||||
: MachOSection("__debug_abbrev", "__DWARF", 1,
|
||||
MachOSection::S_REGULAR | MachOSection::S_ATTR_DEBUG),
|
||||
#endif
|
||||
desc_(desc) { }
|
||||
desc_(desc) {
|
||||
}
|
||||
|
||||
// DWARF2 standard, figure 14.
|
||||
enum DWARF2Tags {
|
||||
@ -1262,10 +1190,7 @@ class DebugAbbrevSection : public DebugSection {
|
||||
};
|
||||
|
||||
// DWARF2 standard, figure 16.
|
||||
enum DWARF2ChildrenDetermination {
|
||||
DW_CHILDREN_NO = 0,
|
||||
DW_CHILDREN_YES = 1
|
||||
};
|
||||
enum DWARF2ChildrenDetermination { DW_CHILDREN_NO = 0, DW_CHILDREN_YES = 1 };
|
||||
|
||||
// DWARF standard, figure 17.
|
||||
enum DWARF2Attribute {
|
||||
@ -1292,10 +1217,8 @@ class DebugAbbrevSection : public DebugSection {
|
||||
DW_FORM_REF4 = 0x13
|
||||
};
|
||||
|
||||
void WriteVariableAbbreviation(Writer* w,
|
||||
int abbreviation_code,
|
||||
bool has_value,
|
||||
bool is_parameter) {
|
||||
void WriteVariableAbbreviation(Writer* w, int abbreviation_code,
|
||||
bool has_value, bool is_parameter) {
|
||||
w->WriteULEB128(abbreviation_code);
|
||||
w->WriteULEB128(is_parameter ? DW_TAG_FORMAL_PARAMETER : DW_TAG_VARIABLE);
|
||||
w->Write<uint8_t>(DW_CHILDREN_NO);
|
||||
@ -1368,15 +1291,12 @@ class DebugAbbrevSection : public DebugSection {
|
||||
WriteVariableAbbreviation(w, current_abbreviation++, true, true);
|
||||
}
|
||||
|
||||
for (int internal_slot = 0;
|
||||
internal_slot < internal_slots;
|
||||
for (int internal_slot = 0; internal_slot < internal_slots;
|
||||
++internal_slot) {
|
||||
WriteVariableAbbreviation(w, current_abbreviation++, false, false);
|
||||
}
|
||||
|
||||
for (int context_slot = 0;
|
||||
context_slot < context_slots;
|
||||
++context_slot) {
|
||||
for (int context_slot = 0; context_slot < context_slots; ++context_slot) {
|
||||
WriteVariableAbbreviation(w, current_abbreviation++, false, false);
|
||||
}
|
||||
|
||||
@ -1397,19 +1317,17 @@ class DebugAbbrevSection : public DebugSection {
|
||||
CodeDescription* desc_;
|
||||
};
|
||||
|
||||
|
||||
class DebugLineSection : public DebugSection {
|
||||
public:
|
||||
explicit DebugLineSection(CodeDescription* desc)
|
||||
#ifdef __ELF
|
||||
: ELFSection(".debug_line", TYPE_PROGBITS, 1),
|
||||
#else
|
||||
: MachOSection("__debug_line",
|
||||
"__DWARF",
|
||||
1,
|
||||
: MachOSection("__debug_line", "__DWARF", 1,
|
||||
MachOSection::S_REGULAR | MachOSection::S_ATTR_DEBUG),
|
||||
#endif
|
||||
desc_(desc) { }
|
||||
desc_(desc) {
|
||||
}
|
||||
|
||||
// DWARF2 standard, figure 34.
|
||||
enum DWARF2Opcodes {
|
||||
@ -1442,22 +1360,22 @@ class DebugLineSection : public DebugSection {
|
||||
w->Write<uint16_t>(2); // Field version.
|
||||
Writer::Slot<uint32_t> prologue_length = w->CreateSlotHere<uint32_t>();
|
||||
uintptr_t prologue_start = w->position();
|
||||
w->Write<uint8_t>(1); // Field minimum_instruction_length.
|
||||
w->Write<uint8_t>(1); // Field default_is_stmt.
|
||||
w->Write<int8_t>(line_base); // Field line_base.
|
||||
w->Write<uint8_t>(line_range); // Field line_range.
|
||||
w->Write<uint8_t>(1); // Field minimum_instruction_length.
|
||||
w->Write<uint8_t>(1); // Field default_is_stmt.
|
||||
w->Write<int8_t>(line_base); // Field line_base.
|
||||
w->Write<uint8_t>(line_range); // Field line_range.
|
||||
w->Write<uint8_t>(opcode_base); // Field opcode_base.
|
||||
w->Write<uint8_t>(0); // DW_LNS_COPY operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_ADVANCE_PC operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_ADVANCE_LINE operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_SET_FILE operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_SET_COLUMN operands count.
|
||||
w->Write<uint8_t>(0); // DW_LNS_NEGATE_STMT operands count.
|
||||
w->Write<uint8_t>(0); // Empty include_directories sequence.
|
||||
w->Write<uint8_t>(0); // DW_LNS_COPY operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_ADVANCE_PC operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_ADVANCE_LINE operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_SET_FILE operands count.
|
||||
w->Write<uint8_t>(1); // DW_LNS_SET_COLUMN operands count.
|
||||
w->Write<uint8_t>(0); // DW_LNS_NEGATE_STMT operands count.
|
||||
w->Write<uint8_t>(0); // Empty include_directories sequence.
|
||||
w->WriteString(desc_->GetFilename().get()); // File name.
|
||||
w->WriteULEB128(0); // Current directory.
|
||||
w->WriteULEB128(0); // Unknown modification time.
|
||||
w->WriteULEB128(0); // Unknown file size.
|
||||
w->WriteULEB128(0); // Current directory.
|
||||
w->WriteULEB128(0); // Unknown modification time.
|
||||
w->WriteULEB128(0); // Unknown file size.
|
||||
w->Write<uint8_t>(0);
|
||||
prologue_length.set(static_cast<uint32_t>(w->position() - prologue_start));
|
||||
|
||||
@ -1478,7 +1396,7 @@ class DebugLineSection : public DebugSection {
|
||||
|
||||
// Reduce bloating in the debug line table by removing duplicate line
|
||||
// entries (per DWARF2 standard).
|
||||
intptr_t new_line = desc_->GetScriptLineNumber(info->pos_);
|
||||
intptr_t new_line = desc_->GetScriptLineNumber(info->pos_);
|
||||
if (new_line == line) {
|
||||
continue;
|
||||
}
|
||||
@ -1503,8 +1421,8 @@ class DebugLineSection : public DebugSection {
|
||||
intptr_t line_diff = new_line - line;
|
||||
|
||||
// Compute special opcode (see DWARF 2.0 standard)
|
||||
intptr_t special_opcode = (line_diff - line_base) +
|
||||
(line_range * pc_diff) + opcode_base;
|
||||
intptr_t special_opcode =
|
||||
(line_diff - line_base) + (line_range * pc_diff) + opcode_base;
|
||||
|
||||
// If special_opcode is less than or equal to 255, it can be used as a
|
||||
// special opcode. If line_diff is larger than the max line increment
|
||||
@ -1536,8 +1454,7 @@ class DebugLineSection : public DebugSection {
|
||||
}
|
||||
|
||||
private:
|
||||
void WriteExtendedOpcode(Writer* w,
|
||||
DWARF2ExtendedOpcode op,
|
||||
void WriteExtendedOpcode(Writer* w, DWARF2ExtendedOpcode op,
|
||||
size_t operands_size) {
|
||||
w->Write<uint8_t>(0);
|
||||
w->WriteULEB128(operands_size + 1);
|
||||
@ -1558,7 +1475,6 @@ class DebugLineSection : public DebugSection {
|
||||
CodeDescription* desc_;
|
||||
};
|
||||
|
||||
|
||||
#if V8_TARGET_ARCH_X64
|
||||
|
||||
class UnwindInfoSection : public DebugSection {
|
||||
@ -1574,8 +1490,7 @@ class UnwindInfoSection : public DebugSection {
|
||||
void WriteFDEStateAfterRBPSet(Writer* w);
|
||||
void WriteFDEStateAfterRBPPop(Writer* w);
|
||||
|
||||
void WriteLength(Writer* w,
|
||||
Writer::Slot<uint32_t>* length_slot,
|
||||
void WriteLength(Writer* w, Writer::Slot<uint32_t>* length_slot,
|
||||
int initial_position);
|
||||
|
||||
private:
|
||||
@ -1629,7 +1544,6 @@ class UnwindInfoSection : public DebugSection {
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
void UnwindInfoSection::WriteLength(Writer* w,
|
||||
Writer::Slot<uint32_t>* length_slot,
|
||||
int initial_position) {
|
||||
@ -1645,7 +1559,6 @@ void UnwindInfoSection::WriteLength(Writer* w,
|
||||
length_slot->set(static_cast<uint32_t>(w->position() - initial_position));
|
||||
}
|
||||
|
||||
|
||||
UnwindInfoSection::UnwindInfoSection(CodeDescription* desc)
|
||||
#ifdef __ELF
|
||||
: ELFSection(".eh_frame", TYPE_X86_64_UNWIND, 1),
|
||||
@ -1653,7 +1566,8 @@ UnwindInfoSection::UnwindInfoSection(CodeDescription* desc)
|
||||
: MachOSection("__eh_frame", "__TEXT", sizeof(uintptr_t),
|
||||
MachOSection::S_REGULAR),
|
||||
#endif
|
||||
desc_(desc) { }
|
||||
desc_(desc) {
|
||||
}
|
||||
|
||||
int UnwindInfoSection::WriteCIE(Writer* w) {
|
||||
Writer::Slot<uint32_t> cie_length_slot = w->CreateSlotHere<uint32_t>();
|
||||
@ -1674,7 +1588,6 @@ int UnwindInfoSection::WriteCIE(Writer* w) {
|
||||
return cie_position;
|
||||
}
|
||||
|
||||
|
||||
void UnwindInfoSection::WriteFDE(Writer* w, int cie_position) {
|
||||
// The only FDE for this function. The CFA is the current RBP.
|
||||
Writer::Slot<uint32_t> fde_length_slot = w->CreateSlotHere<uint32_t>();
|
||||
@ -1692,7 +1605,6 @@ void UnwindInfoSection::WriteFDE(Writer* w, int cie_position) {
|
||||
WriteLength(w, &fde_length_slot, fde_position);
|
||||
}
|
||||
|
||||
|
||||
void UnwindInfoSection::WriteFDEStateOnEntry(Writer* w) {
|
||||
// The first state, just after the control has been transferred to the the
|
||||
// function.
|
||||
@ -1719,7 +1631,6 @@ void UnwindInfoSection::WriteFDEStateOnEntry(Writer* w) {
|
||||
desc_->GetStackStateStartAddress(CodeDescription::POST_RBP_PUSH));
|
||||
}
|
||||
|
||||
|
||||
void UnwindInfoSection::WriteFDEStateAfterRBPPush(Writer* w) {
|
||||
// The second state, just after RBP has been pushed.
|
||||
|
||||
@ -1740,7 +1651,6 @@ void UnwindInfoSection::WriteFDEStateAfterRBPPush(Writer* w) {
|
||||
desc_->GetStackStateStartAddress(CodeDescription::POST_RBP_SET));
|
||||
}
|
||||
|
||||
|
||||
void UnwindInfoSection::WriteFDEStateAfterRBPSet(Writer* w) {
|
||||
// The third state, after the RBP has been set.
|
||||
|
||||
@ -1755,7 +1665,6 @@ void UnwindInfoSection::WriteFDEStateAfterRBPSet(Writer* w) {
|
||||
desc_->GetStackStateStartAddress(CodeDescription::POST_RBP_POP));
|
||||
}
|
||||
|
||||
|
||||
void UnwindInfoSection::WriteFDEStateAfterRBPPop(Writer* w) {
|
||||
// The fourth (final) state. The RBP has been popped (just before issuing a
|
||||
// return).
|
||||
@ -1775,80 +1684,69 @@ void UnwindInfoSection::WriteFDEStateAfterRBPPop(Writer* w) {
|
||||
w->Write<uint64_t>(desc_->CodeEnd());
|
||||
}
|
||||
|
||||
|
||||
bool UnwindInfoSection::WriteBodyInternal(Writer* w) {
|
||||
uint32_t cie_position = WriteCIE(w);
|
||||
WriteFDE(w, cie_position);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
#endif // V8_TARGET_ARCH_X64
|
||||
|
||||
static void CreateDWARFSections(CodeDescription* desc,
|
||||
Zone* zone,
|
||||
static void CreateDWARFSections(CodeDescription* desc, Zone* zone,
|
||||
DebugObject* obj) {
|
||||
if (desc->IsLineInfoAvailable()) {
|
||||
obj->AddSection(new(zone) DebugInfoSection(desc));
|
||||
obj->AddSection(new(zone) DebugAbbrevSection(desc));
|
||||
obj->AddSection(new(zone) DebugLineSection(desc));
|
||||
obj->AddSection(new (zone) DebugInfoSection(desc));
|
||||
obj->AddSection(new (zone) DebugAbbrevSection(desc));
|
||||
obj->AddSection(new (zone) DebugLineSection(desc));
|
||||
}
|
||||
#if V8_TARGET_ARCH_X64
|
||||
obj->AddSection(new(zone) UnwindInfoSection(desc));
|
||||
obj->AddSection(new (zone) UnwindInfoSection(desc));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Binary GDB JIT Interface as described in
|
||||
// http://sourceware.org/gdb/onlinedocs/gdb/Declarations.html
|
||||
extern "C" {
|
||||
typedef enum {
|
||||
JIT_NOACTION = 0,
|
||||
JIT_REGISTER_FN,
|
||||
JIT_UNREGISTER_FN
|
||||
} JITAction;
|
||||
typedef enum { JIT_NOACTION = 0, JIT_REGISTER_FN, JIT_UNREGISTER_FN } JITAction;
|
||||
|
||||
struct JITCodeEntry {
|
||||
JITCodeEntry* next_;
|
||||
JITCodeEntry* prev_;
|
||||
Address symfile_addr_;
|
||||
uint64_t symfile_size_;
|
||||
};
|
||||
struct JITCodeEntry {
|
||||
JITCodeEntry* next_;
|
||||
JITCodeEntry* prev_;
|
||||
Address symfile_addr_;
|
||||
uint64_t symfile_size_;
|
||||
};
|
||||
|
||||
struct JITDescriptor {
|
||||
uint32_t version_;
|
||||
uint32_t action_flag_;
|
||||
JITCodeEntry* relevant_entry_;
|
||||
JITCodeEntry* first_entry_;
|
||||
};
|
||||
struct JITDescriptor {
|
||||
uint32_t version_;
|
||||
uint32_t action_flag_;
|
||||
JITCodeEntry* relevant_entry_;
|
||||
JITCodeEntry* first_entry_;
|
||||
};
|
||||
|
||||
// GDB will place breakpoint into this function.
|
||||
// To prevent GCC from inlining or removing it we place noinline attribute
|
||||
// and inline assembler statement inside.
|
||||
void __attribute__((noinline)) __jit_debug_register_code() {
|
||||
__asm__("");
|
||||
}
|
||||
// GDB will place breakpoint into this function.
|
||||
// To prevent GCC from inlining or removing it we place noinline attribute
|
||||
// and inline assembler statement inside.
|
||||
void __attribute__((noinline)) __jit_debug_register_code() { __asm__(""); }
|
||||
|
||||
// GDB will inspect contents of this descriptor.
|
||||
// Static initialization is necessary to prevent GDB from seeing
|
||||
// uninitialized descriptor.
|
||||
JITDescriptor __jit_debug_descriptor = {1, 0, nullptr, nullptr};
|
||||
// GDB will inspect contents of this descriptor.
|
||||
// Static initialization is necessary to prevent GDB from seeing
|
||||
// uninitialized descriptor.
|
||||
JITDescriptor __jit_debug_descriptor = {1, 0, nullptr, nullptr};
|
||||
|
||||
#ifdef OBJECT_PRINT
|
||||
void __gdb_print_v8_object(Object object) {
|
||||
StdoutStream os;
|
||||
object->Print(os);
|
||||
os << std::flush;
|
||||
}
|
||||
void __gdb_print_v8_object(Object object) {
|
||||
StdoutStream os;
|
||||
object->Print(os);
|
||||
os << std::flush;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
static JITCodeEntry* CreateCodeEntry(Address symfile_addr,
|
||||
uintptr_t symfile_size) {
|
||||
JITCodeEntry* entry = static_cast<JITCodeEntry*>(
|
||||
malloc(sizeof(JITCodeEntry) + symfile_size));
|
||||
JITCodeEntry* entry =
|
||||
static_cast<JITCodeEntry*>(malloc(sizeof(JITCodeEntry) + symfile_size));
|
||||
|
||||
entry->symfile_addr_ = reinterpret_cast<Address>(entry + 1);
|
||||
entry->symfile_size_ = symfile_size;
|
||||
@ -1860,23 +1758,18 @@ static JITCodeEntry* CreateCodeEntry(Address symfile_addr,
|
||||
return entry;
|
||||
}
|
||||
|
||||
|
||||
static void DestroyCodeEntry(JITCodeEntry* entry) {
|
||||
free(entry);
|
||||
}
|
||||
|
||||
static void DestroyCodeEntry(JITCodeEntry* entry) { free(entry); }
|
||||
|
||||
static void RegisterCodeEntry(JITCodeEntry* entry) {
|
||||
entry->next_ = __jit_debug_descriptor.first_entry_;
|
||||
if (entry->next_ != nullptr) entry->next_->prev_ = entry;
|
||||
__jit_debug_descriptor.first_entry_ =
|
||||
__jit_debug_descriptor.relevant_entry_ = entry;
|
||||
__jit_debug_descriptor.first_entry_ = __jit_debug_descriptor.relevant_entry_ =
|
||||
entry;
|
||||
|
||||
__jit_debug_descriptor.action_flag_ = JIT_REGISTER_FN;
|
||||
__jit_debug_register_code();
|
||||
}
|
||||
|
||||
|
||||
static void UnregisterCodeEntry(JITCodeEntry* entry) {
|
||||
if (entry->prev_ != nullptr) {
|
||||
entry->prev_->next_ = entry->next_;
|
||||
@ -1893,16 +1786,14 @@ static void UnregisterCodeEntry(JITCodeEntry* entry) {
|
||||
__jit_debug_register_code();
|
||||
}
|
||||
|
||||
|
||||
static JITCodeEntry* CreateELFObject(CodeDescription* desc, Isolate* isolate) {
|
||||
#ifdef __MACH_O
|
||||
Zone zone(isolate->allocator(), ZONE_NAME);
|
||||
MachO mach_o(&zone);
|
||||
Writer w(&mach_o);
|
||||
|
||||
mach_o.AddSection(new(&zone) MachOTextSection(kCodeAlignment,
|
||||
desc->CodeStart(),
|
||||
desc->CodeSize()));
|
||||
mach_o.AddSection(new (&zone) MachOTextSection(
|
||||
kCodeAlignment, desc->CodeStart(), desc->CodeSize()));
|
||||
|
||||
CreateDWARFSections(desc, &zone, &mach_o);
|
||||
|
||||
@ -1926,7 +1817,6 @@ static JITCodeEntry* CreateELFObject(CodeDescription* desc, Isolate* isolate) {
|
||||
return CreateCodeEntry(reinterpret_cast<Address>(w.buffer()), w.position());
|
||||
}
|
||||
|
||||
|
||||
struct AddressRange {
|
||||
Address start;
|
||||
Address end;
|
||||
@ -1954,7 +1844,6 @@ static CodeMap* GetCodeMap() {
|
||||
return code_map;
|
||||
}
|
||||
|
||||
|
||||
static uint32_t HashCodeAddress(Address addr) {
|
||||
static const uintptr_t kGoldenRatio = 2654435761u;
|
||||
return static_cast<uint32_t>((addr >> kCodeAlignmentBits) * kGoldenRatio);
|
||||
@ -1968,7 +1857,6 @@ static base::HashMap* GetLineMap() {
|
||||
return line_map;
|
||||
}
|
||||
|
||||
|
||||
static void PutLineInfo(Address addr, LineInfo* info) {
|
||||
base::HashMap* line_map = GetLineMap();
|
||||
base::HashMap::Entry* e = line_map->LookupOrInsert(
|
||||
@ -1977,14 +1865,12 @@ static void PutLineInfo(Address addr, LineInfo* info) {
|
||||
e->value = info;
|
||||
}
|
||||
|
||||
|
||||
static LineInfo* GetLineInfo(Address addr) {
|
||||
void* value = GetLineMap()->Remove(reinterpret_cast<void*>(addr),
|
||||
HashCodeAddress(addr));
|
||||
return static_cast<LineInfo*>(value);
|
||||
}
|
||||
|
||||
|
||||
static void AddUnwindInfo(CodeDescription* desc) {
|
||||
#if V8_TARGET_ARCH_X64
|
||||
if (desc->is_function()) {
|
||||
@ -2021,10 +1907,8 @@ static void AddUnwindInfo(CodeDescription* desc) {
|
||||
#endif // V8_TARGET_ARCH_X64
|
||||
}
|
||||
|
||||
|
||||
static base::LazyMutex mutex = LAZY_MUTEX_INITIALIZER;
|
||||
|
||||
|
||||
// Remove entries from the splay tree that intersect the given address range,
|
||||
// and deregister them from GDB.
|
||||
static void RemoveJITCodeEntries(CodeMap* map, const AddressRange& range) {
|
||||
@ -2055,7 +1939,6 @@ static void RemoveJITCodeEntries(CodeMap* map, const AddressRange& range) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Insert the entry into the splay tree and register it with GDB.
|
||||
static void AddJITCodeEntry(CodeMap* map, const AddressRange& range,
|
||||
JITCodeEntry* entry, bool dump_if_enabled,
|
||||
@ -2168,3 +2051,6 @@ void EventHandler(const v8::JitCodeEvent* event) {
|
||||
} // namespace GDBJITInterface
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
#undef __MACH_O
|
||||
#undef __ELF
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef V8_GDB_JIT_H_
|
||||
#define V8_GDB_JIT_H_
|
||||
#ifndef V8_DIAGNOSTICS_GDB_JIT_H_
|
||||
#define V8_DIAGNOSTICS_GDB_JIT_H_
|
||||
|
||||
#include "include/v8.h"
|
||||
|
||||
@ -36,4 +36,4 @@ void EventHandler(const v8::JitCodeEvent* event);
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
#endif // V8_GDB_JIT_H_
|
||||
#endif // V8_DIAGNOSTICS_GDB_JIT_H_
|
@ -5,10 +5,9 @@
|
||||
#include "src/objects.h"
|
||||
|
||||
#include "src/assembler-inl.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/date/date.h"
|
||||
#include "src/disasm.h"
|
||||
#include "src/disassembler.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
#include "src/diagnostics/disassembler.h"
|
||||
#include "src/elements.h"
|
||||
#include "src/field-type.h"
|
||||
#include "src/heap/combined-heap.h"
|
||||
@ -16,6 +15,7 @@
|
||||
#include "src/ic/handler-configuration-inl.h"
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/layout-descriptor.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/objects/allocation-site-inl.h"
|
||||
#include "src/objects/arguments-inl.h"
|
||||
@ -1947,7 +1947,7 @@ void JSObject::IncrementSpillStatistics(Isolate* isolate,
|
||||
// Named properties
|
||||
if (HasFastProperties()) {
|
||||
info->number_of_objects_with_fast_properties_++;
|
||||
info->number_of_fast_used_fields_ += map()->NextFreePropertyIndex();
|
||||
info->number_of_fast_used_fields_ += map()->NextFreePropertyIndex();
|
||||
info->number_of_fast_unused_fields_ += map()->UnusedPropertyFields();
|
||||
} else if (IsJSGlobalObject()) {
|
||||
GlobalDictionary dict = JSGlobalObject::cast(*this)->global_dictionary();
|
||||
@ -1980,7 +1980,7 @@ void JSObject::IncrementSpillStatistics(Isolate* isolate,
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (e->get(i)->IsTheHole(isolate)) holes++;
|
||||
}
|
||||
info->number_of_fast_used_elements_ += len - holes;
|
||||
info->number_of_fast_used_elements_ += len - holes;
|
||||
info->number_of_fast_unused_elements_ += holes;
|
||||
break;
|
||||
}
|
||||
@ -2010,7 +2010,6 @@ void JSObject::IncrementSpillStatistics(Isolate* isolate,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void JSObject::SpillInformation::Clear() {
|
||||
number_of_objects_ = 0;
|
||||
number_of_objects_with_fast_properties_ = 0;
|
||||
@ -2025,21 +2024,20 @@ void JSObject::SpillInformation::Clear() {
|
||||
number_of_slow_unused_elements_ = 0;
|
||||
}
|
||||
|
||||
|
||||
void JSObject::SpillInformation::Print() {
|
||||
PrintF("\n JSObject Spill Statistics (#%d):\n", number_of_objects_);
|
||||
|
||||
PrintF(" - fast properties (#%d): %d (used) %d (unused)\n",
|
||||
number_of_objects_with_fast_properties_,
|
||||
number_of_fast_used_fields_, number_of_fast_unused_fields_);
|
||||
number_of_objects_with_fast_properties_, number_of_fast_used_fields_,
|
||||
number_of_fast_unused_fields_);
|
||||
|
||||
PrintF(" - slow properties (#%d): %d (used) %d (unused)\n",
|
||||
number_of_objects_ - number_of_objects_with_fast_properties_,
|
||||
number_of_slow_used_properties_, number_of_slow_unused_properties_);
|
||||
|
||||
PrintF(" - fast elements (#%d): %d (used) %d (unused)\n",
|
||||
number_of_objects_with_fast_elements_,
|
||||
number_of_fast_used_elements_, number_of_fast_unused_elements_);
|
||||
number_of_objects_with_fast_elements_, number_of_fast_used_elements_,
|
||||
number_of_fast_unused_elements_);
|
||||
|
||||
PrintF(" - slow elements (#%d): %d (used) %d (unused)\n",
|
||||
number_of_objects_ - number_of_objects_with_fast_elements_,
|
@ -7,8 +7,8 @@
|
||||
#include <iomanip>
|
||||
#include <memory>
|
||||
|
||||
#include "src/disasm.h"
|
||||
#include "src/disassembler.h"
|
||||
#include "src/diagnostics/disasm.h"
|
||||
#include "src/diagnostics/disassembler.h"
|
||||
#include "src/heap/heap-inl.h" // For InOldSpace.
|
||||
#include "src/heap/heap-write-barrier-inl.h" // For GetIsolateFromWritableObj.
|
||||
#include "src/init/bootstrapper.h"
|
||||
@ -472,12 +472,10 @@ void BytecodeArray::BytecodeArrayPrint(std::ostream& os) { // NOLINT
|
||||
Disassemble(os);
|
||||
}
|
||||
|
||||
|
||||
void FreeSpace::FreeSpacePrint(std::ostream& os) { // NOLINT
|
||||
os << "free space, size " << Size() << "\n";
|
||||
}
|
||||
|
||||
|
||||
template <class Traits>
|
||||
void FixedTypedArray<Traits>::FixedTypedArrayPrint(
|
||||
std::ostream& os) { // NOLINT
|
||||
@ -877,7 +875,6 @@ void Symbol::SymbolPrint(std::ostream& os) { // NOLINT
|
||||
os << "\n - private: " << is_private();
|
||||
}
|
||||
|
||||
|
||||
void DescriptorArray::DescriptorArrayPrint(std::ostream& os) {
|
||||
PrintHeader(os, "DescriptorArray");
|
||||
os << "\n - enum_cache: ";
|
||||
@ -1209,7 +1206,6 @@ void JSMessageObject::JSMessageObjectPrint(std::ostream& os) { // NOLINT
|
||||
JSObjectPrintBody(os, *this);
|
||||
}
|
||||
|
||||
|
||||
void String::StringPrint(std::ostream& os) { // NOLINT
|
||||
if (!IsOneByteRepresentation()) {
|
||||
os << "u";
|
||||
@ -1241,7 +1237,6 @@ void String::StringPrint(std::ostream& os) { // NOLINT
|
||||
if (!StringShape(*this).IsInternalized()) os << "\"";
|
||||
}
|
||||
|
||||
|
||||
void Name::NamePrint(std::ostream& os) { // NOLINT
|
||||
if (IsString()) {
|
||||
String::cast(*this)->StringPrint(os);
|
||||
@ -1250,10 +1245,8 @@ void Name::NamePrint(std::ostream& os) { // NOLINT
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static const char* const weekdays[] = {
|
||||
"???", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
|
||||
};
|
||||
static const char* const weekdays[] = {"???", "Sun", "Mon", "Tue",
|
||||
"Wed", "Thu", "Fri", "Sat"};
|
||||
|
||||
void JSDate::JSDatePrint(std::ostream& os) { // NOLINT
|
||||
JSObjectPrintHeader(os, *this, "JSDate");
|
||||
@ -1276,7 +1269,6 @@ void JSDate::JSDatePrint(std::ostream& os) { // NOLINT
|
||||
JSObjectPrintBody(os, *this);
|
||||
}
|
||||
|
||||
|
||||
void JSProxy::JSProxyPrint(std::ostream& os) { // NOLINT
|
||||
PrintHeader(os, "JSProxy");
|
||||
os << "\n - target: ";
|
||||
@ -1643,7 +1635,6 @@ void Foreign::ForeignPrint(std::ostream& os) { // NOLINT
|
||||
os << "\n";
|
||||
}
|
||||
|
||||
|
||||
void AccessorInfo::AccessorInfoPrint(std::ostream& os) { // NOLINT
|
||||
PrintHeader(os, "AccessorInfo");
|
||||
os << "\n - name: " << Brief(name());
|
||||
@ -1968,7 +1959,6 @@ void AccessorPair::AccessorPairPrint(std::ostream& os) { // NOLINT
|
||||
os << "\n";
|
||||
}
|
||||
|
||||
|
||||
void AccessCheckInfo::AccessCheckInfoPrint(std::ostream& os) { // NOLINT
|
||||
PrintHeader(os, "AccessCheckInfo");
|
||||
os << "\n - callback: " << Brief(callback());
|
||||
@ -1999,7 +1989,6 @@ void InterceptorInfo::InterceptorInfoPrint(std::ostream& os) { // NOLINT
|
||||
os << "\n";
|
||||
}
|
||||
|
||||
|
||||
void FunctionTemplateInfo::FunctionTemplateInfoPrint(
|
||||
std::ostream& os) { // NOLINT
|
||||
PrintHeader(os, "FunctionTemplateInfo");
|
||||
@ -2056,7 +2045,6 @@ void ObjectTemplateInfo::ObjectTemplateInfoPrint(std::ostream& os) { // NOLINT
|
||||
os << "\n";
|
||||
}
|
||||
|
||||
|
||||
void AllocationSite::AllocationSitePrint(std::ostream& os) { // NOLINT
|
||||
PrintHeader(os, "AllocationSite");
|
||||
if (this->HasWeakNext()) os << "\n - weak_next: " << Brief(weak_next());
|
||||
@ -2080,7 +2068,6 @@ void AllocationSite::AllocationSitePrint(std::ostream& os) { // NOLINT
|
||||
os << "\n";
|
||||
}
|
||||
|
||||
|
||||
void AllocationMemento::AllocationMementoPrint(std::ostream& os) { // NOLINT
|
||||
PrintHeader(os, "AllocationMemento");
|
||||
os << "\n - allocation site: ";
|
||||
@ -2091,7 +2078,6 @@ void AllocationMemento::AllocationMementoPrint(std::ostream& os) { // NOLINT
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Script::ScriptPrint(std::ostream& os) { // NOLINT
|
||||
PrintHeader(os, "Script");
|
||||
os << "\n - source: " << Brief(source());
|
@ -25,12 +25,12 @@
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#include "src/perf-jit.h"
|
||||
#include "src/diagnostics/perf-jit.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "src/assembler.h"
|
||||
#include "src/eh-frame.h"
|
||||
#include "src/diagnostics/eh-frame.h"
|
||||
#include "src/objects-inl.h"
|
||||
#include "src/ostreams.h"
|
||||
#include "src/snapshot/embedded-data.h"
|
@ -25,10 +25,10 @@
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#ifndef V8_PERF_JIT_H_
|
||||
#define V8_PERF_JIT_H_
|
||||
#ifndef V8_DIAGNOSTICS_PERF_JIT_H_
|
||||
#define V8_DIAGNOSTICS_PERF_JIT_H_
|
||||
|
||||
#include "src/log.h"
|
||||
#include "src/logging/log.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
@ -144,4 +144,4 @@ class PerfJitLogger : public CodeEventLogger {
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
#endif // V8_PERF_JIT_H_
|
||||
#endif // V8_DIAGNOSTICS_PERF_JIT_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "src/unwinding-info-win64.h"
|
||||
#include "src/diagnostics/unwinding-info-win64.h"
|
||||
|
||||
#if defined(V8_OS_WIN_X64)
|
||||
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef V8_UNWINDING_INFO_WIN64_H_
|
||||
#define V8_UNWINDING_INFO_WIN64_H_
|
||||
#ifndef V8_DIAGNOSTICS_UNWINDING_INFO_WIN64_H_
|
||||
#define V8_DIAGNOSTICS_UNWINDING_INFO_WIN64_H_
|
||||
|
||||
#include "include/v8.h"
|
||||
#include "include/v8config.h"
|
||||
@ -98,4 +98,4 @@ class XdataEncoder {
|
||||
|
||||
#endif // defined(V8_OS_WIN_X64)
|
||||
|
||||
#endif // V8_UNWINDING_INFO_WIN64_H_
|
||||
#endif // V8_DIAGNOSTICS_UNWINDING_INFO_WIN64_H_
|
@ -4,9 +4,9 @@
|
||||
|
||||
#include "src/extensions/statistics-extension.h"
|
||||
|
||||
#include "src/counters.h"
|
||||
#include "src/heap/heap-inl.h" // crbug.com/v8/8499
|
||||
#include "src/isolate.h"
|
||||
#include "src/logging/counters.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -5,9 +5,9 @@
|
||||
#include "src/external-reference-table.h"
|
||||
|
||||
#include "src/accessors.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/external-reference.h"
|
||||
#include "src/ic/stub-cache.h"
|
||||
#include "src/logging/counters.h"
|
||||
|
||||
#if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
|
||||
#define SYMBOLIZE_FUNCTION
|
||||
|
@ -9,8 +9,8 @@
|
||||
|
||||
#include "src/accessors.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/counters-definitions.h"
|
||||
#include "src/external-reference.h"
|
||||
#include "src/logging/counters-definitions.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include "src/api.h"
|
||||
#include "src/base/ieee754.h"
|
||||
#include "src/compiler/code-assembler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/cpu-features.h"
|
||||
#include "src/date/date.h"
|
||||
#include "src/debug/debug.h"
|
||||
@ -15,13 +14,14 @@
|
||||
#include "src/elements.h"
|
||||
#include "src/hash-seed-inl.h"
|
||||
#include "src/heap/heap.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/objects/ordered-hash-table.h"
|
||||
// For IncrementalMarking::RecordWriteFromCode. TODO(jkummerow): Drop.
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/ic/stub-cache.h"
|
||||
#include "src/interpreter/interpreter.h"
|
||||
#include "src/isolate.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/microtask-queue.h"
|
||||
#include "src/numbers/math-random.h"
|
||||
#include "src/objects-inl.h"
|
||||
|
@ -13,8 +13,8 @@
|
||||
#include "src/allocation.h"
|
||||
#include "src/base/functional.h"
|
||||
#include "src/base/platform/platform.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/cpu-features.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/memcopy.h"
|
||||
#include "src/ostreams.h"
|
||||
#include "src/utils.h"
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "src/base/bits.h"
|
||||
#include "src/builtins/constants-table-builder.h"
|
||||
#include "src/compiler.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/hash-seed-inl.h"
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/heap/incremental-marking.h"
|
||||
@ -21,7 +20,8 @@
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/interpreter/interpreter.h"
|
||||
#include "src/isolate-inl.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects/allocation-site-inl.h"
|
||||
#include "src/objects/api-callbacks.h"
|
||||
|
@ -7,11 +7,11 @@
|
||||
#include <cstdarg>
|
||||
|
||||
#include "src/base/atomic-utils.h"
|
||||
#include "src/counters-inl.h"
|
||||
#include "src/heap/heap-inl.h"
|
||||
#include "src/heap/incremental-marking.h"
|
||||
#include "src/heap/spaces.h"
|
||||
#include "src/isolate.h"
|
||||
#include "src/logging/counters-inl.h"
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
@ -8,10 +8,10 @@
|
||||
#include "src/base/compiler-specific.h"
|
||||
#include "src/base/platform/platform.h"
|
||||
#include "src/base/ring-buffer.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/globals.h"
|
||||
#include "src/heap-symbols.h"
|
||||
#include "src/heap/heap.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "testing/gtest/include/gtest/gtest_prod.h" // nogncheck
|
||||
|
||||
namespace v8 {
|
||||
|
@ -49,7 +49,7 @@
|
||||
#include "src/heap/sweeper.h"
|
||||
#include "src/init/bootstrapper.h"
|
||||
#include "src/interpreter/interpreter.h"
|
||||
#include "src/log.h"
|
||||
#include "src/logging/log.h"
|
||||
#include "src/microtask-queue.h"
|
||||
#include "src/numbers/conversions.h"
|
||||
#include "src/objects/data-handler.h"
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "src/heap/item-parallel-job.h"
|
||||
|
||||
#include "src/base/platform/semaphore.h"
|
||||
#include "src/counters.h"
|
||||
#include "src/logging/counters.h"
|
||||
#include "src/v8.h"
|
||||
|
||||
namespace v8 {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user