DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Untracked file

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
<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>