Closed Bug 1128982 Opened 9 years ago Closed 5 years ago

Debugger should provide a way to not remove object actor (pause) on clientEvaluate

Categories

(DevTools :: Debugger, task)

35 Branch
x86
macOS
task
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: develar, Unassigned)

References

(Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18

Steps to reproduce:

Currently, Fx RDP is much more difficult to support than V8/WIP/JDI/Nashorn.

One of the main problem — on clientEvaluate all previously stored objects (actors) are gone.

On break, IDEA debugger load frames and show top frame first scope variables. Additional expressions could be automatically added (used expressions, like foo.bar in context of current function). Such expressions will be computed by evaluate (clientEvaluate request).  And there are other possible invocations of "clientEvaluate" during break.

As result, we must to send undocumented request threadGrips to hold object actors. Otherwise we get "no such actor error". (User wants to see some object properties -> we use object actor to get it's properties.)

Firebug workaround (as I see in the source code):  Fx RDP is not used, object directly used. We cannot use this workaround, because we connected remotely. 

threadGrips is not good solution, because it leads to race conditions and increase complexity (you must send threadGrips request ASAP to avoid "no such actor error").



Expected results:

Ideal solution: as WIP/V8 — resume on evaluate it is detail of implementation, it is low-level.

Or may be some flag in bindings/prototypeAndProperties/prototype/property requests to make mirrored object as thread grip. But "thread grip" is also unsuitable solution. Why debugger client should do VM work? On resume (user visible "resume", not low-level VM resume) all mirrored objects must be just released. Currently we must to explicitly release objects on resume (and ignore error "notReleasable" for some objects because it not easy to check).
Component: Untriaged → Developer Tools: Debugger
Product: Firefox → DevTools

Jim, is this still relevant?

Flags: needinfo?(jimb)
Blocks: dbg-server
Type: defect → task

I don't think this is relevant any more.

Status: UNCONFIRMED → RESOLVED
Closed: 5 years ago
Resolution: --- → INVALID
Flags: needinfo?(jimb)
You need to log in before you can comment on or make changes to this bug.