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

Unified Diff: runtime/vm/debugger.h

Issue 1312763010: Support column-based breakpoints in the VM and Observatory. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 months 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: runtime/vm/debugger.h
diff --git a/runtime/vm/debugger.h b/runtime/vm/debugger.h
index 396e8b247617c4715ae62f179f20a1c5d3813f29..2c7633bdbf9a89583d1e510b00c7dbfc51008e52 100644
--- a/runtime/vm/debugger.h
+++ b/runtime/vm/debugger.h
@@ -99,10 +99,12 @@ class BreakpointLocation {
// Create a new unresolved breakpoint.
BreakpointLocation(const Script& script,
intptr_t token_pos,
- intptr_t end_token_pos);
+ intptr_t end_token_pos,
+ intptr_t requested_column_number);
// Create a new latent breakpoint.
BreakpointLocation(const String& url,
- intptr_t line_number);
+ intptr_t requested_line_number,
+ intptr_t requested_column_number);
~BreakpointLocation();
@@ -112,7 +114,12 @@ class BreakpointLocation {
RawScript* script() const { return script_; }
RawString* url() const { return url_; }
+
+ intptr_t requested_line_number() { return requested_line_number_; }
+ intptr_t requested_column_number() { return requested_column_number_; }
+
intptr_t LineNumber();
+ intptr_t ColumnNumber();
void GetCodeLocation(Library* lib, Script* script, intptr_t* token_pos);
@@ -144,10 +151,13 @@ class BreakpointLocation {
bool is_resolved_;
BreakpointLocation* next_;
Breakpoint* conditions_;
+ intptr_t requested_line_number_;
+ intptr_t requested_column_number_;
// Valid for resolved breakpoints:
RawFunction* function_;
intptr_t line_number_;
+ intptr_t column_number_;
friend class Debugger;
DISALLOW_COPY_AND_ASSIGN(BreakpointLocation);
@@ -460,10 +470,14 @@ class Debugger {
// TODO(turnidge): script_url may no longer be specific enough.
Breakpoint* SetBreakpointAtLine(const String& script_url,
intptr_t line_number);
+ Breakpoint* SetBreakpointAtLineCol(const String& script_url,
+ intptr_t line_number,
+ intptr_t column_number);
RawError* OneTimeBreakAtEntry(const Function& target_function);
- BreakpointLocation* BreakpointLocationAtLine(const String& script_url,
- intptr_t line_number);
+ BreakpointLocation* BreakpointLocationAtLineCol(const String& script_url,
+ intptr_t line_number,
+ intptr_t column_number);
void RemoveBreakpoint(intptr_t bp_id);
@@ -575,18 +589,23 @@ class Debugger {
intptr_t token_pos);
intptr_t ResolveBreakpointPos(const Function& func,
intptr_t requested_token_pos,
- intptr_t last_token_pos);
+ intptr_t last_token_pos,
+ intptr_t requested_col);
void DeoptimizeWorld();
BreakpointLocation* SetBreakpoint(const Script& script,
intptr_t token_pos,
- intptr_t last_token_pos);
+ intptr_t last_token_pos,
+ intptr_t requested_col);
void RemoveInternalBreakpoints();
void UnlinkCodeBreakpoints(BreakpointLocation* bpt_location);
- BreakpointLocation* GetLatentBreakpoint(const String& url, intptr_t line);
+ BreakpointLocation* GetLatentBreakpoint(const String& url,
+ intptr_t line,
+ intptr_t column);
void RegisterBreakpointLocation(BreakpointLocation* bpt);
void RegisterCodeBreakpoint(CodeBreakpoint* bpt);
BreakpointLocation* GetBreakpointLocation(const Script& script,
- intptr_t token_pos);
+ intptr_t token_pos,
+ intptr_t requested_column);
void MakeCodeBreakpointAt(const Function& func,
BreakpointLocation* bpt);
// Returns NULL if no breakpoint exists for the given address.

Powered by Google App Engine
This is Rietveld 408576698