Confirmed users
496
edits
Line 49: | Line 49: | ||
= Design Principles for <b>js::dbg2</b> = | = Design Principles for <b>js::dbg2</b> = | ||
<ul> | <ul> | ||
<li><b>js::dbg2 must support remote debugging.</b> Using a protocol | <li><b>js::dbg2 must support remote debugging.</b> Using a protocol | ||
resembling the [http://code.google.com/p/v8/wiki/DebuggerProtocol V8 debugger protocol], js::dbg2 should allow the debugger's user interface to | resembling the [http://code.google.com/p/v8/wiki/DebuggerProtocol V8 debugger protocol], js::dbg2 should allow the debugger's user interface to | ||
Line 57: | Line 55: | ||
debuggee. This allows us to debug on mobile devices and worker threads, and | debuggee. This allows us to debug on mobile devices and worker threads, and | ||
increases the segregation of debugger and debuggee. | increases the segregation of debugger and debuggee. | ||
<li><b>js::dbg2 will support cross-thread debugging via remote | <li><b>js::dbg2 will support cross-thread debugging via remote | ||
debugging.</b> The "server" for the remote protocol will be lightweight | debugging.</b> The "server" for the remote protocol will be lightweight | ||
Line 65: | Line 62: | ||
mediated by the remote protocol, greatly simplifying js::dbg2's | mediated by the remote protocol, greatly simplifying js::dbg2's | ||
implementation. | implementation. | ||
<p>(Note that some operations are inherently cross-thread: enumerating | <p>(Note that some operations are inherently cross-thread: enumerating | ||
currently running threads; thread creation notifications; the initial | currently running threads; thread creation notifications; the initial | ||
attachment of the debugger to a thread. But once a thread has been attached | attachment of the debugger to a thread. But once a thread has been attached | ||
to, all subsequent communication is via the remote protocol.)</p> | to, all subsequent communication is via the remote protocol.)</p> | ||
<li><b>js::dbg2 must operate at the JavaScript source language level.</b> | <li><b>js::dbg2 must operate at the JavaScript source language level.</b> | ||
SpiderMonkey's current debugging interfaces (jsdbgapi and jsd) are built | SpiderMonkey's current debugging interfaces (jsdbgapi and jsd) are built | ||
Line 79: | Line 74: | ||
program directly to the original JavaScript program --- not to the state of | program directly to the original JavaScript program --- not to the state of | ||
imaginary bytecode, which is then related to the original JavaScript. | imaginary bytecode, which is then related to the original JavaScript. | ||
</ul> | </ul> | ||