Commit e79ba28a authored by peter.rybin@gmail.com's avatar peter.rybin@gmail.com

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)

R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/15685010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 1bf85abf
......@@ -1241,15 +1241,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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment