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

Unified Diff: src/debug/debug.h

Issue 2664793002: [debugger] account for inlined functions when stepping. (Closed)
Patch Set: comment addressed Created 3 years, 11 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
« no previous file with comments | « no previous file | src/debug/debug.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/debug/debug.h
diff --git a/src/debug/debug.h b/src/debug/debug.h
index dd6bb31d5f62cc8aca2d219c85d9a3671a98aaf7..7af4502f8bb9858203ae8195bd093fe3c0838912 100644
--- a/src/debug/debug.h
+++ b/src/debug/debug.h
@@ -50,10 +50,6 @@ enum ExceptionBreakType {
};
-// Type of exception break.
-enum BreakLocatorType { ALL_BREAK_LOCATIONS, CALLS_AND_RETURNS };
-
-
// The different types of breakpoint position alignments.
// Must match Debug.BreakPositionAlignment in debug.js
enum BreakPositionAlignment {
@@ -122,8 +118,7 @@ class BreakLocation {
class BreakIterator {
public:
static std::unique_ptr<BreakIterator> GetIterator(
- Handle<DebugInfo> debug_info, Handle<AbstractCode> abstract_code,
- BreakLocatorType type = ALL_BREAK_LOCATIONS);
+ Handle<DebugInfo> debug_info, Handle<AbstractCode> abstract_code);
virtual ~BreakIterator() {}
@@ -145,8 +140,7 @@ class BreakIterator {
virtual void SetDebugBreak() = 0;
protected:
- explicit BreakIterator(Handle<DebugInfo> debug_info,
- BreakLocatorType break_locator_type);
+ explicit BreakIterator(Handle<DebugInfo> debug_info);
int BreakIndexFromPosition(int position, BreakPositionAlignment alignment);
@@ -156,7 +150,6 @@ class BreakIterator {
int break_index_;
int position_;
int statement_position_;
- BreakLocatorType break_locator_type_;
private:
DisallowHeapAllocation no_gc_;
@@ -165,7 +158,7 @@ class BreakIterator {
class CodeBreakIterator : public BreakIterator {
public:
- CodeBreakIterator(Handle<DebugInfo> debug_info, BreakLocatorType type);
+ explicit CodeBreakIterator(Handle<DebugInfo> debug_info);
~CodeBreakIterator() override {}
BreakLocation GetBreakLocation() override;
@@ -184,7 +177,7 @@ class CodeBreakIterator : public BreakIterator {
}
private:
- int GetModeMask(BreakLocatorType type);
+ int GetModeMask();
DebugBreakType GetDebugBreakType();
RelocInfo::Mode rmode() { return reloc_iterator_.rinfo()->rmode(); }
@@ -197,8 +190,7 @@ class CodeBreakIterator : public BreakIterator {
class BytecodeArrayBreakIterator : public BreakIterator {
public:
- BytecodeArrayBreakIterator(Handle<DebugInfo> debug_info,
- BreakLocatorType type);
+ explicit BytecodeArrayBreakIterator(Handle<DebugInfo> debug_info);
~BytecodeArrayBreakIterator() override {}
BreakLocation GetBreakLocation() override;
@@ -357,11 +349,8 @@ class Debug {
void SetDebugDelegate(debug::DebugDelegate* delegate);
- // Returns whether the operation succeeded. Compilation can only be triggered
- // if a valid closure is passed as the second argument, otherwise the shared
- // function needs to be compiled already.
- bool EnsureDebugInfo(Handle<SharedFunctionInfo> shared,
- Handle<JSFunction> function);
+ // Returns whether the operation succeeded.
+ bool EnsureDebugInfo(Handle<SharedFunctionInfo> shared);
void CreateDebugInfo(Handle<SharedFunctionInfo> shared);
static Handle<DebugInfo> GetDebugInfo(Handle<SharedFunctionInfo> shared);
@@ -466,6 +455,9 @@ class Debug {
thread_local_.break_id_ = ++thread_local_.break_count_;
}
+ // Return the number of virtual frames below debugger entry.
+ int CurrentFrameCount();
+
inline bool ignore_events() const {
return is_suppressed_ || !is_active_ || isolate_->needs_side_effect_check();
}
@@ -492,7 +484,6 @@ class Debug {
return !event_listener_.is_null() && !event_listener_->IsForeign();
}
- bool IsBlackboxed(SharedFunctionInfo* shared);
bool IsExceptionBlackboxed(bool uncaught);
void OnException(Handle<Object> exception, Handle<Object> promise);
@@ -526,8 +517,7 @@ class Debug {
// Clear all code from instrumentation.
void ClearAllBreakPoints();
// Instrument a function with one-shots.
- void FloodWithOneShot(Handle<JSFunction> function,
- BreakLocatorType type = ALL_BREAK_LOCATIONS);
+ void FloodWithOneShot(Handle<SharedFunctionInfo> function);
// Clear all one-shot instrumentations, but restore break points.
void ClearOneShot();
@@ -607,10 +597,10 @@ class Debug {
int last_statement_position_;
// Frame pointer from last step next or step frame action.
- Address last_fp_;
+ int last_frame_count_;
// Frame pointer of the target frame we want to arrive at.
- Address target_fp_;
+ int target_frame_count_;
// Value of the accumulator at the point of entering the debugger.
Object* return_value_;
« no previous file with comments | « no previous file | src/debug/debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698