Closed
Bug 1171174
Opened 9 years ago
Closed 5 years ago
Resuming debugger execution takes two clicks
Categories
(DevTools :: Debugger, defect)
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 1441183
People
(Reporter: jonathan, Unassigned)
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0 Build ID: 20150602004005 Steps to reproduce: Given running in safe mode 1. Go to http://todomvc.com/examples/backbone/ 2. Open debugger, place breakpoint on first executed line (line 11) 3. Reload page 4. Click Resume execution Actual results: Debugger stands stopped, Resume arrow still visible, needs to be clicked a second time for execution to resume. Expected results: Debugger resumes.
Reporter | ||
Comment 1•9 years ago
|
||
Similar to 1123380, apparently closed due to bad add-ons. I don't know how to say this, but it feels like I'm getting bug after bug for the ~year I've switched over to devtools. How can that be?
Reporter | ||
Updated•9 years ago
|
Component: Untriaged → Developer Tools: Debugger
Comment 2•9 years ago
|
||
I think the issue here is that the line in question has two entry points, but one of the entry points is a bit odd. Then according to this theory, what happens is that the debugger sets breakpoints at both entry points. The first such breakpoint is hit on reload; then after continuing, the second breakpoint is hit -- but as it is on the same line, nothing appears to happen. Here's a test case showing the bug: var global = newGlobal(); Debugger(global).onDebuggerStatement = function (frame) { var script = frame.eval("f").return.script; print(JSON.stringify(script.getAllOffsets())); }; fstr = `function f() { zzz = something({ a: 57, b: whatever() }); } debugger;`; global.log = ''; global.eval(fstr); eval(fstr) dis(f) When I run it: pokyo. ./obj-x86_64-unknown-linux-gnu/dist/bin/js /tmp/r.js [null,null,[0,45],[20],[27],[54]] flags: CONSTRUCTOR loc op ----- -- main: 00000: bindname "zzz" 00005: getname "something" 00010: gimplicitthis "something" 00015: newobject ({a:(void 0), b:(void 0)}) 00020: int8 57 00022: initprop "a" 00027: getname "whatever" 00032: gimplicitthis "whatever" 00037: call 0 00040: initprop "b" 00045: call 1 00048: setname "zzz" 00053: pop 00054: retrval Source notes: ofs line pc delta desc args ---- ---- ----- ------ -------- ------ 0: 1 0 [ 0] newline 1: 2 0 [ 0] colspan 4 3: 2 20 [ 20] xdelta 4: 2 20 [ 0] newline 5: 3 20 [ 0] colspan 1 7: 3 27 [ 7] newline 8: 4 27 [ 0] colspan 1 10: 4 37 [ 10] xdelta 11: 4 37 [ 0] colspan 3 13: 4 45 [ 8] xdelta 14: 4 45 [ 0] setline lineno 2 16: 2 45 [ 0] colspan 10 18: 2 54 [ 9] xdelta 19: 2 54 [ 0] setline lineno 5 21: 5 54 [ 0] colspan 7 The entry points in question are at PC=0 and PC=45. This is related to bug 1003554 and its dependencies, though here it isn't clear to me what can be done about it.
Comment 3•9 years ago
|
||
Nick suggested that one way would be to provide some feedback so users know that something is happening -- like some kind of fade-out animation on the breakpoint icon when continuing and another animation when stopping. The usual approach to bugs like this is to change the source notes so that some instructions are skipped by the debugger (see bug 1003554 et al). But I think that won't work in this situation -- it would regress other scenarios. We also discussed the idea of a heuristic in the debugger, like "if continuing from a breakpoint location, and the next stop is on the same line and frame, don't stop". Our current thinking though is that heuristics like this are difficult to get correct; for instance this variant fails for some kinds of loops, where you would want to stop at each iteration.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Updated•6 years ago
|
Product: Firefox → DevTools
Comment 4•5 years ago
|
||
I believe this is a dupe of bug 1441183
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•