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

Issue 115262: Change the handling of the debug break stack guard (Closed)

Created:
11 years, 7 months ago by Søren Thygesen Gjesse
Modified:
9 years, 7 months ago
Reviewers:
Erik Corry
CC:
v8-dev
Visibility:
Public.

Description

Change the handling of the debug break stack guard. The debug break is no longer ignored when hit inside "system" JavaScript. The reason for this is twofold: * Running "system" JavaScript with the debug break flag active leads to slow running code while waiting for the break in non "system" JavaScript (one exception to this it is to try to avoid breaks in the clear mirror cache JavaScript code called when leaving the debugger). * If this happens while processing RegExp running in native code an infinite loop is created as the stack guard handler for RegExp does not move execution forward Fixed a GC bug in the interrupt handling for RegExp running in native code. Added test of debug break while in debug message handler callback and debug break while executing a RegExp. Committed: http://code.google.com/p/v8/source/detail?r=2074

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Patch Set 5 : '' #

Total comments: 8

Patch Set 6 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+168 lines, -45 lines) Patch
M src/debug.h View 1 2 3 4 5 4 chunks +43 lines, -21 lines 0 comments Download
M src/debug.cc View 1 2 3 4 5 3 chunks +7 lines, -2 lines 0 comments Download
M src/execution.cc View 1 2 3 2 chunks +4 lines, -20 lines 0 comments Download
M src/ia32/regexp-macro-assembler-ia32.cc View 1 2 1 chunk +3 lines, -2 lines 0 comments Download
M test/cctest/test-debug.cc View 1 2 3 4 1 chunk +111 lines, -0 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
Søren Thygesen Gjesse
11 years, 7 months ago (2009-05-12 20:37:17 UTC) #1
Søren Thygesen Gjesse
I have now revisited this change and it is ready for review.
11 years, 7 months ago (2009-05-28 14:46:55 UTC) #2
Erik Corry
LGTM http://codereview.chromium.org/115262/diff/22/24 File src/debug.h (right): http://codereview.chromium.org/115262/diff/22/24#newcode291 Line 291: static void set_interrupt_pending(InterruptFlag what) { Plural-singular discrepancy ...
11 years, 7 months ago (2009-05-29 08:10:28 UTC) #3
Søren Thygesen Gjesse
11 years, 7 months ago (2009-05-29 08:40:42 UTC) #4
http://codereview.chromium.org/115262/diff/22/24
File src/debug.h (right):

http://codereview.chromium.org/115262/diff/22/24#newcode291
Line 291: static void set_interrupt_pending(InterruptFlag what) {
On 2009/05/29 08:10:28, Erik Corry wrote:
> Plural-singular discrepancy between comment and function name.

Done.

http://codereview.chromium.org/115262/diff/22/24#newcode690
Line 690: ASSERT(prev_ == NULL ? !Debug::is_interrupt_pending(PREEMPT) : true);
On 2009/05/29 08:10:28, Erik Corry wrote:
> How about ASSERT(prev_ != NULL || !Debug::is_interrupt_pending(PREEMPT))

Done.

http://codereview.chromium.org/115262/diff/22/24#newcode728
Line 728: // Try to avoid any pending debug break to break in the clear mirror
On 2009/05/29 08:10:28, Erik Corry wrote:
> to break -> breaking.
> I guess this can't completely prevent breaks in the clear mirror code, so I
> assume that breaks in the clear mirror code are not a correctness problem,
just
> a little confusing for the user?

Done.

http://codereview.chromium.org/115262/diff/22/24#newcode743
Line 743: Debug::clear_interrupt_pending(PREEMPT);
On 2009/05/29 08:10:28, Erik Corry wrote:
> Should these two last lines be reordered?

Done.

Powered by Google App Engine
This is Rietveld 408576698