Chromium Code Reviews| Index: runtime/vm/debugger.h |
| =================================================================== |
| --- runtime/vm/debugger.h (revision 42370) |
| +++ runtime/vm/debugger.h (working copy) |
| @@ -25,12 +25,25 @@ |
| // SourceBreakpoint represents a user-specified breakpoint location in |
| // Dart source. There may be more than one CodeBreakpoint object per |
| // SourceBreakpoint. |
| +// An unresolved breakpoint is one where the underlying code has not |
| +// been compiled yet. Since the code has not been compiled, we don't know |
| +// the definitive source location yet. The requested source location may |
| +// change when the underlying code gets compiled. |
| +// A latent breakpoint represents a breakpoint location in Dart source |
| +// that is not loaded in the VM when the breakpoint is requested. |
| +// When a script with matching url is loaded, a latent breakpoint |
| +// becomes an unresolved breakpoint. |
| class SourceBreakpoint { |
| public: |
| + // Create a new unresolved breakpoint. |
| SourceBreakpoint(intptr_t id, |
| const Script& script, |
| intptr_t token_pos, |
| intptr_t end_token_pos); |
| + // Create a new latent brakpoint. |
|
Ivan Posva
2014/12/18 23:18:39
e
hausner
2014/12/18 23:26:49
Done.
|
| + SourceBreakpoint(intptr_t id, |
| + const String& url, |
| + intptr_t line_number); |
| RawFunction* function() const { return function_; } |
| intptr_t token_pos() const { return token_pos_; } |
| @@ -38,7 +51,7 @@ |
| intptr_t id() const { return id_; } |
| RawScript* script() const { return script_; } |
| - RawString* SourceUrl(); |
| + RawString* url() const { return url_; } |
| intptr_t LineNumber(); |
| void GetCodeLocation(Library* lib, Script* script, intptr_t* token_pos); |
| @@ -47,6 +60,7 @@ |
| void Disable(); |
| bool IsEnabled() const { return is_enabled_; } |
| bool IsResolved() const { return is_resolved_; } |
| + bool IsLatent() const { return token_pos_ < 0; } |
| bool IsOneShot() const { return is_one_shot_; } |
| void SetIsOneShot() { is_one_shot_ = true; } |
| @@ -62,6 +76,7 @@ |
| const intptr_t id_; |
| RawScript* script_; |
| + RawString* url_; |
| intptr_t token_pos_; |
| intptr_t end_token_pos_; |
| bool is_resolved_; |
| @@ -342,6 +357,7 @@ |
| void Shutdown(); |
| void NotifyCompilation(const Function& func); |
| + void NotifyDoneLoading(); |
| RawFunction* ResolveFunction(const Library& library, |
| const String& class_name, |
| @@ -462,6 +478,7 @@ |
| intptr_t last_token_pos); |
| void RemoveInternalBreakpoints(); |
| void UnlinkCodeBreakpoints(SourceBreakpoint* src_bpt); |
| + SourceBreakpoint* GetLatentBreakpoint(const String& url, intptr_t line); |
| void RegisterSourceBreakpoint(SourceBreakpoint* bpt); |
| void RegisterCodeBreakpoint(CodeBreakpoint* bpt); |
| SourceBreakpoint* GetSourceBreakpoint(const Script& script, |
| @@ -511,7 +528,7 @@ |
| // ID number generator. |
| intptr_t next_id_; |
| - |
| + SourceBreakpoint* latent_breakpoints_; |
| SourceBreakpoint* src_breakpoints_; |
| CodeBreakpoint* code_breakpoints_; |