Reviewers: Yang,
Description:
Find breakpoint by PC rather than source position when clearing breakpoint
Current approach is to find breakpoint by the statement position that was
used
when setting breakpoint. This doesn't work when setting breakpoint by
anything
else but statement position.
(Question: could PC of existing breakpoint change, for example because of
recompilation, or this approach is safe)
Please review this at https://codereview.chromium.org/15685010/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/debug.cc
Index: src/debug.cc
diff --git a/src/debug.cc b/src/debug.cc
index
91af9ccc1bab32cb351006da1d51de108c6a006e..010ea46c9eddf155a259ac292e7663bc8727deb0
100644
--- a/src/debug.cc
+++ b/src/debug.cc
@@ -1239,15 +1239,11 @@ void Debug::ClearBreakPoint(Handle<Object>
break_point_object) {
// Get information in the break point.
BreakPointInfo* break_point_info = BreakPointInfo::cast(result);
Handle<DebugInfo> debug_info = node->debug_info();
- Handle<SharedFunctionInfo> shared(debug_info->shared());
- int source_position =
break_point_info->statement_position()->value();
-
- // Source positions starts with zero.
- ASSERT(source_position >= 0);
// Find the break point and clear it.
BreakLocationIterator it(debug_info, SOURCE_BREAK_LOCATIONS);
- it.FindBreakLocationFromPosition(source_position);
+ it.FindBreakLocationFromAddress(debug_info->code()->entry() +
+ break_point_info->code_position()->value());
it.ClearBreakPoint(break_point_object);
// If there are no more break points left remove the debug info for
this
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.