Closed Bug 678220 Opened 13 years ago Closed 13 years ago

[jsdbg2] Assertion failure: enabledCount > 0, at vm/Debugger.cpp:224

Categories

(Core :: JavaScript Engine, defect)

Other Branch
x86_64
Linux
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: decoder, Unassigned)

Details

(Keywords: assertion, testcase)

Attachments

(1 file)

The attached test asserts on jsdbg2 branch (revision 48e43edc8834, see README for running instructions). The test is very instable, original version did not always reproduce.
var g = newGlobal('new-compartment');
g.eval("var line0 = Error().lineNumber;\n" +
       "function f() {\n" +     // line0 + 1
       "    return 2;\n" +      // line0 + 2
       "}\n");
for (var i = 0; i < 4; i++) {
    var dbg = Debugger(g);
    dbg.onDebuggerStatement = function (frame) {
        var handler = {hit: function () { hits++; }};
        var s = frame.eval("f").return.script;
        var offs = s.getLineOffsets(g.line0 + 2);
        for (var j = 0; j < offs.length; j++)
            s.setBreakpoint(offs[j], handler);
    };
}
g.eval('debugger;');
dbg.enabled = false;
gc({});
false.enabled = true;
assertEq(g.f(), 2);

I think this is a variation of a bug involving breakpoints that we already have. I'll fix it today.
Something in this merge:
  http://hg.mozilla.org/mozilla-central/rev/080fece621e4
fixed this bug.

It wasn't anything in the jsdbg2 side of the merge, so it must have been a changeset from the mozilla-inbound side of the merge. But the Debugger API doesn't exist on that side, which makes it rather hard to bisect and find out what fixed it. One could do it but there's the opportunity cost.

-> WORKSFORME
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: