gecko-dev/js/jsdj/doc/jsd_arch.html

163 lines
4.3 KiB
HTML

<html>
<head>
<title>JSD Architecture</title>
</head>
<body bgcolor=white>
<h1><center>JSD Architecture</center></h1>
<a href="mailto:jband@netscape.com"><center>John Bandhauer</center></a>
<i><center>6 July 1998</center></i>
<p>
<center><img src="jsd_arch.jpg" border=1><br></center>
<center><i>Basic JSD architecture for both C and Java engines</i></center>
<p>
<table>
<tr>
<td valign=top><font color=red>(1)</font></td>
<td>
Spider Monkey JavaScript engine. This is an unmodified engine which exposes
a low-level debug interface via <code>js/src/jsdbgapi.h</code>.
</td>
</tr>
<tr>
<td valign=top><font color=red>(2)</font></td>
<td>
Spider Monkey JavaScript debug support. This provides a wrapper and does
bookkeeping.
</td>
</tr>
<tr>
<td valign=top><font color=red>(3)</font></td>
<td>
Corba adapter. Using only public interfaces of JSD this module remotes
the debug interface over a Corba connection.
</td>
</tr>
<tr>
<td valign=top><font color=red>(4)</font></td>
<td>
JNI native adapter. This implements the natives of <code>netscape.debug</code>
using JNI natives.
</td>
</tr>
<tr>
<td valign=top><font color=red>(5)</font></td>
<td>
Old JDK native adapter. This implements the natives of <code>netscape.debug</code>
using old style JDK natives. This is currently in use in Communicator 4.x.
</td>
</tr>
<tr>
<td valign=top><font color=red>(6)</font></td>
<td>
Rhino <i>JavaScript for Java</i> engine. This is the unmodified Rhino engine.
It exposes the low-level debug interface via various interface classesand support
built into the Context and Codegen classes.
</td>
</tr>
<tr>
<td valign=top><font color=red>(7)</font></td>
<td>
Rhino debug support package. This exposes a higher level debug interface for
Rhino and includes a reference implementation of that interface.
</td>
</tr>
<tr>
<td valign=top><font color=red>(8)</font></td>
<td>
Client end of Corba adapter. This implements <code>com.netscape.jsdebugging.api</code>
to provide debugger clients access to an engine running in a different process
space.
</td>
</tr>
<tr>
<td valign=top><font color=red>(9)</font></td>
<td>
<code>netscape.debug</code> is a package included in Communiator 4.x.
The JNI and JDK natives supply the bridge from C to Java that is exposed on the
Java side by this package.
</td>
</tr>
<tr>
<td valign=top><font color=red>(10)</font></td>
<td>
The local adapter implements <code>com.netscape.jsdebugging.api</code> in a form that
allows the debugger client to connect to <code>netscape.debug</code>.
</td>
</tr>
<tr>
<td valign=top><font color=red>(11)</font></td>
<td>
The rhino adapter implements <code>com.netscape.jsdebugging.api</code> in a form that
allows the debugger client to connect to <code>com.netscape.javascript.debug</code>.
</td>
</tr>
<tr>
<td valign=top><font color=red>(12)</font></td>
<td>
<code>com.netscape.jsdebugging.api</code> is an interface only package that allows
debugger clients to talk to any of the adapters transparently and with no
compile-time coupling to the adapters.
</td>
</tr>
<tr>
<td valign=top><font color=red>(13)</font></td>
<td>
Java-based Graphical Debugger. Currently we have one debugger written using IFC
and shipping in it's 1.1 form. Version 1.2 is unfinished and under development
in the mozilla tree in <code>js/sjdj/classes</code> in the package
<code>com.netscape.jsdebugging.ifcui</code>.
</td>
</tr>
<tr>
<td valign=top><font color=red>(14)</font></td>
<td>
Java-based Console Debugger. Currently we have a version of this checked in
to the mozilla tree in <code>com.netscape.jsdebugging.jsdb</code>. This version
will work with either Rhino or the C engine using engine abstraction classes in
<code>com.netscape.jsdebugging.engine</code>.
</td>
</tr>
<tr>
<td valign=top><font color=red>(15)</font></td>
<td>
Java-based debug api tests are implemented in
<code>com.netscape.jsdebugging.apitests</code>.
</td>
</tr>
<tr>
<td valign=top><font color=red>(n/a)</font></td>
<td>
Not shown is a purely native console debugger which uses only js/src and js/jsd.
It can be found in js/jsd/jsdb. This debugger uses the JS shell and reflects
the JSD api into the JavaScript language. The actual debugger is written in
JavaScript. It can be modified and extended as it runs and can debug itself.
</td>
</tr>
</table>
<HR>
last updated: 28 September 1998 - jband
</body>
</html>