Commit 91119c19 authored by Benedikt Meurer's avatar Benedikt Meurer Committed by V8 LUCI CQ

[refactor] Remove debug dependency for FrameSummary.

The FrameSummary::FunctionName() method is only used by the
FrameInspector in the debugger, so the natural place to put
the dependency on GetWasmFunctionDebugName() is in there,
rather than adding a new dependency to frames.cc. This is a
follow up cleanup as discussed in https://crrev.com/c/2878734

Bug: chromium:1159307
Change-Id: I0698adf63f88fe6a93d6e5e6235bc0c2219e9341
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2883784Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74482}
parent a7980d43
...@@ -7,6 +7,10 @@ ...@@ -7,6 +7,10 @@
#include "src/builtins/accessors.h" #include "src/builtins/accessors.h"
#include "src/execution/frames-inl.h" #include "src/execution/frames-inl.h"
#if V8_ENABLE_WEBASSEMBLY
#include "src/debug/debug-wasm-objects.h"
#endif // V8_ENABLE_WEBASSEMBLY
namespace v8 { namespace v8 {
namespace internal { namespace internal {
...@@ -21,7 +25,6 @@ FrameInspector::FrameInspector(CommonFrame* frame, int inlined_frame_index, ...@@ -21,7 +25,6 @@ FrameInspector::FrameInspector(CommonFrame* frame, int inlined_frame_index,
is_constructor_ = summary.is_constructor(); is_constructor_ = summary.is_constructor();
source_position_ = summary.SourcePosition(); source_position_ = summary.SourcePosition();
function_name_ = summary.FunctionName();
script_ = Handle<Script>::cast(summary.script()); script_ = Handle<Script>::cast(summary.script());
receiver_ = summary.receiver(); receiver_ = summary.receiver();
...@@ -70,6 +73,18 @@ Handle<Object> FrameInspector::GetContext() { ...@@ -70,6 +73,18 @@ Handle<Object> FrameInspector::GetContext() {
: handle(frame_->context(), isolate_); : handle(frame_->context(), isolate_);
} }
Handle<String> FrameInspector::GetFunctionName() {
#if V8_ENABLE_WEBASSEMBLY
if (IsWasm()) {
auto wasm_frame = WasmFrame::cast(frame_);
auto wasm_instance = handle(wasm_frame->wasm_instance(), isolate_);
return GetWasmFunctionDebugName(isolate_, wasm_instance,
wasm_frame->function_index());
}
#endif // V8_ENABLE_WEBASSEMBLY
return JSFunction::GetDebugName(function_);
}
#if V8_ENABLE_WEBASSEMBLY #if V8_ENABLE_WEBASSEMBLY
bool FrameInspector::IsWasm() { return frame_->is_wasm(); } bool FrameInspector::IsWasm() { return frame_->is_wasm(); }
#endif // V8_ENABLE_WEBASSEMBLY #endif // V8_ENABLE_WEBASSEMBLY
......
...@@ -36,7 +36,7 @@ class FrameInspector { ...@@ -36,7 +36,7 @@ class FrameInspector {
Handle<Object> GetContext(); Handle<Object> GetContext();
Handle<Object> GetReceiver() { return receiver_; } Handle<Object> GetReceiver() { return receiver_; }
Handle<String> GetFunctionName() { return function_name_; } Handle<String> GetFunctionName();
#if V8_ENABLE_WEBASSEMBLY #if V8_ENABLE_WEBASSEMBLY
bool IsWasm(); bool IsWasm();
...@@ -58,7 +58,6 @@ class FrameInspector { ...@@ -58,7 +58,6 @@ class FrameInspector {
Handle<Script> script_; Handle<Script> script_;
Handle<Object> receiver_; Handle<Object> receiver_;
Handle<JSFunction> function_; Handle<JSFunction> function_;
Handle<String> function_name_;
int source_position_ = -1; int source_position_ = -1;
bool is_optimized_ = false; bool is_optimized_ = false;
bool is_constructor_ = false; bool is_constructor_ = false;
......
...@@ -2270,12 +2270,14 @@ void Debug::PrintBreakLocation() { ...@@ -2270,12 +2270,14 @@ void Debug::PrintBreakLocation() {
StackTraceFrameIterator iterator(isolate_); StackTraceFrameIterator iterator(isolate_);
if (iterator.done()) return; if (iterator.done()) return;
CommonFrame* frame = iterator.frame(); CommonFrame* frame = iterator.frame();
FrameSummary summary = FrameSummary::GetTop(frame); std::vector<FrameSummary> frames;
summary.EnsureSourcePositionsAvailable(); frame->Summarize(&frames);
int source_position = summary.SourcePosition(); int inlined_frame_index = static_cast<int>(frames.size() - 1);
Handle<Object> script_obj = summary.script(); FrameInspector inspector(frame, inlined_frame_index, isolate_);
int source_position = inspector.GetSourcePosition();
Handle<Object> script_obj = inspector.GetScript();
PrintF("[debug] break in function '"); PrintF("[debug] break in function '");
summary.FunctionName()->PrintOn(stdout); inspector.GetFunctionName()->PrintOn(stdout);
PrintF("'.\n"); PrintF("'.\n");
if (script_obj->IsScript()) { if (script_obj->IsScript()) {
Handle<Script> script = Handle<Script>::cast(script_obj); Handle<Script> script = Handle<Script>::cast(script_obj);
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include "src/zone/zone-containers.h" #include "src/zone/zone-containers.h"
#if V8_ENABLE_WEBASSEMBLY #if V8_ENABLE_WEBASSEMBLY
#include "src/debug/debug-wasm-objects.h"
#include "src/wasm/wasm-code-manager.h" #include "src/wasm/wasm-code-manager.h"
#include "src/wasm/wasm-engine.h" #include "src/wasm/wasm-engine.h"
#include "src/wasm/wasm-objects-inl.h" #include "src/wasm/wasm-objects-inl.h"
...@@ -1447,10 +1446,6 @@ Handle<Object> FrameSummary::JavaScriptFrameSummary::script() const { ...@@ -1447,10 +1446,6 @@ Handle<Object> FrameSummary::JavaScriptFrameSummary::script() const {
return handle(function_->shared().script(), isolate()); return handle(function_->shared().script(), isolate());
} }
Handle<String> FrameSummary::JavaScriptFrameSummary::FunctionName() const {
return JSFunction::GetDebugName(function_);
}
Handle<Context> FrameSummary::JavaScriptFrameSummary::native_context() const { Handle<Context> FrameSummary::JavaScriptFrameSummary::native_context() const {
return handle(function_->context().native_context(), isolate()); return handle(function_->context().native_context(), isolate());
} }
...@@ -1488,10 +1483,6 @@ Handle<Script> FrameSummary::WasmFrameSummary::script() const { ...@@ -1488,10 +1483,6 @@ Handle<Script> FrameSummary::WasmFrameSummary::script() const {
wasm_instance()->GetIsolate()); wasm_instance()->GetIsolate());
} }
Handle<String> FrameSummary::WasmFrameSummary::FunctionName() const {
return GetWasmFunctionDebugName(isolate(), wasm_instance(), function_index());
}
Handle<Context> FrameSummary::WasmFrameSummary::native_context() const { Handle<Context> FrameSummary::WasmFrameSummary::native_context() const {
return handle(wasm_instance()->native_context(), isolate()); return handle(wasm_instance()->native_context(), isolate());
} }
...@@ -1563,7 +1554,6 @@ FRAME_SUMMARY_DISPATCH(bool, is_subject_to_debugging) ...@@ -1563,7 +1554,6 @@ FRAME_SUMMARY_DISPATCH(bool, is_subject_to_debugging)
FRAME_SUMMARY_DISPATCH(Handle<Object>, script) FRAME_SUMMARY_DISPATCH(Handle<Object>, script)
FRAME_SUMMARY_DISPATCH(int, SourcePosition) FRAME_SUMMARY_DISPATCH(int, SourcePosition)
FRAME_SUMMARY_DISPATCH(int, SourceStatementPosition) FRAME_SUMMARY_DISPATCH(int, SourceStatementPosition)
FRAME_SUMMARY_DISPATCH(Handle<String>, FunctionName)
FRAME_SUMMARY_DISPATCH(Handle<Context>, native_context) FRAME_SUMMARY_DISPATCH(Handle<Context>, native_context)
#undef FRAME_SUMMARY_DISPATCH #undef FRAME_SUMMARY_DISPATCH
......
...@@ -387,7 +387,6 @@ class V8_EXPORT_PRIVATE FrameSummary { ...@@ -387,7 +387,6 @@ class V8_EXPORT_PRIVATE FrameSummary {
int SourcePosition() const; int SourcePosition() const;
int SourceStatementPosition() const; int SourceStatementPosition() const;
Handle<Object> script() const; Handle<Object> script() const;
Handle<String> FunctionName() const;
Handle<Context> native_context() const; Handle<Context> native_context() const;
private: private:
...@@ -416,7 +415,6 @@ class V8_EXPORT_PRIVATE FrameSummary { ...@@ -416,7 +415,6 @@ class V8_EXPORT_PRIVATE FrameSummary {
int SourceStatementPosition() const { return SourcePosition(); } int SourceStatementPosition() const { return SourcePosition(); }
Handle<Script> script() const; Handle<Script> script() const;
Handle<WasmInstanceObject> wasm_instance() const { return wasm_instance_; } Handle<WasmInstanceObject> wasm_instance() const { return wasm_instance_; }
Handle<String> FunctionName() const;
Handle<Context> native_context() const; Handle<Context> native_context() const;
bool at_to_number_conversion() const { return at_to_number_conversion_; } bool at_to_number_conversion() const { return at_to_number_conversion_; }
...@@ -451,7 +449,6 @@ class V8_EXPORT_PRIVATE FrameSummary { ...@@ -451,7 +449,6 @@ class V8_EXPORT_PRIVATE FrameSummary {
Handle<Object> script() const; Handle<Object> script() const;
int SourcePosition() const; int SourcePosition() const;
int SourceStatementPosition() const; int SourceStatementPosition() const;
Handle<String> FunctionName() const;
Handle<Context> native_context() const; Handle<Context> native_context() const;
#define FRAME_SUMMARY_CAST(kind_, type, field, desc) \ #define FRAME_SUMMARY_CAST(kind_, type, field, desc) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment