Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Unified Diff: src/debug/interface-types.h

Issue 2549133002: [debug] Remove DebugInterface class (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/debug/interface-types.h
diff --git a/src/debug/interface-types.h b/src/debug/interface-types.h
index 05f2179231252e9d87f975d49ba34efbc1993566..1464415117e1793c3f38af20aa67b00f9611d0f0 100644
--- a/src/debug/interface-types.h
+++ b/src/debug/interface-types.h
@@ -9,6 +9,8 @@
#include <string>
#include <vector>
+#include "include/v8-debug.h"
+
namespace v8 {
namespace debug {
@@ -59,6 +61,91 @@ struct WasmDisassembly {
OffsetTable offset_table;
};
+enum ExceptionBreakState {
+ NoBreakOnException = 0,
+ BreakOnUncaughtException = 1,
+ BreakOnAnyException = 2
+};
+
+/**
+ * An event details object passed to the debug event listener.
+ */
+class EventDetails : public v8::Debug::EventDetails {
+ public:
+ /**
+ * Event type.
+ */
+ virtual v8::DebugEvent GetEvent() const = 0;
+
+ /**
+ * Access to execution state and event data of the debug event. Don't store
+ * these cross callbacks as their content becomes invalid.
+ */
+ virtual Local<Object> GetExecutionState() const = 0;
+ virtual Local<Object> GetEventData() const = 0;
+
+ /**
+ * Get the context active when the debug event happened. Note this is not
+ * the current active context as the JavaScript part of the debugger is
+ * running in its own context which is entered at this point.
+ */
+ virtual Local<Context> GetEventContext() const = 0;
+
+ /**
+ * Client data passed with the corresponding callback when it was
+ * registered.
+ */
+ virtual Local<Value> GetCallbackData() const = 0;
+
+ virtual ~EventDetails() {}
+};
+
+/**
+ * Native wrapper around v8::internal::Script object.
+ */
+class Script {
+ public:
+ v8::Isolate* GetIsolate() const;
+
+ ScriptOriginOptions OriginOptions() const;
+ bool WasCompiled() const;
+ int Id() const;
+ int LineOffset() const;
+ int ColumnOffset() const;
+ std::vector<int> LineEnds() const;
+ MaybeLocal<String> Name() const;
+ MaybeLocal<String> SourceURL() const;
+ MaybeLocal<String> SourceMappingURL() const;
+ MaybeLocal<String> ContextData() const;
+ MaybeLocal<String> Source() const;
+ bool IsWasm() const;
+ bool GetPossibleBreakpoints(const debug::Location& start,
+ const debug::Location& end,
+ std::vector<debug::Location>* locations) const;
+
+ /**
+ * script parameter is a wrapper v8::internal::JSObject for
+ * v8::internal::Script.
+ * This function gets v8::internal::Script from v8::internal::JSObject and
+ * wraps it with DebugInterface::Script.
+ * Returns empty local if not called with a valid wrapper of
+ * v8::internal::Script.
+ */
+ static MaybeLocal<Script> Wrap(Isolate* isolate,
+ v8::Local<v8::Object> script);
+
+ private:
+ int GetSourcePosition(const debug::Location& location) const;
+};
+
+enum StepAction {
+ StepOut = 0, // Step out of the current function.
+ StepNext = 1, // Step to the next statement in the current function.
+ StepIn = 2, // Step into new functions invoked or the next statement
+ // in the current function.
+ StepFrame = 3 // Step into a new frame or return to previous frame.
+};
+
} // namespace debug
} // namespace v8

Powered by Google App Engine
This is Rietveld 408576698