<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Debugging_the_Janus_Debugger</id>
	<title>Debugging the Janus Debugger - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Debugging_the_Janus_Debugger"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Debugging_the_Janus_Debugger&amp;action=history"/>
	<updated>2026-05-08T19:23:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Debugging_the_Janus_Debugger&amp;diff=119753&amp;oldid=prev</id>
		<title>Ekern at 17:45, 19 April 2023</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Debugging_the_Janus_Debugger&amp;diff=119753&amp;oldid=prev"/>
		<updated>2023-04-19T17:45:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:45, 19 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt;Whenever your browser sends a web request to a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Janus Web Server&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt; that has been configured for debugging, this sequence of events unfolds: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt;Whenever your browser sends a web request to a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Janus Web Server&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt; that has been configured for debugging, this sequence of events unfolds: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;Before sending your web request, the Client on the workstation, which is [[Configure web browser (Janus Debugger only)|defined]] as your proxy server, connects to the Debugger Server port on the online (configured during [[Define and start the Debugger Server port|installation]]). The Debugger Server starts a thread whose default user ID is SOCKUSER. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;1. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;Before sending your web request, the Client on the workstation, which is [[Configure web browser (Janus Debugger only)|defined]] as your proxy server, connects to the Debugger Server port on the online (configured during [[Define and start the Debugger Server port|installation]]). The Debugger Server starts a thread whose default user ID is SOCKUSER. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The Debugger Server communicates over a socket connection with the Client and creates a worker thread for this debugging session. The connection handshake contains a unique ID from the Client for this debugging session. The Server worker thread uses AUDIT statements to report its activities to the &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; audit trail. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;2. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The Debugger Server communicates over a socket connection with the Client and creates a worker thread for this debugging session. The connection handshake contains a unique ID from the Client for this debugging session. The Server worker thread uses AUDIT statements to report its activities to the &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; audit trail. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: The following &amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; audit trail lines for user SOCKUSER report the Debugger Server activity described thus far. The session ID is encircled. Subsequent worker thread lines are shown later. &amp;lt;/span&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;: The following &amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; audit trail lines for user SOCKUSER report the Debugger Server activity described thus far. The session ID is encircled. Subsequent worker thread lines are shown later. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- [[File:workeraudit2b_zoom65.gif|692x166px|workerAudit2b]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&amp;gt; --&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The worker thread is directed by the Debugger Client (based on user interface actions), and the worker thread maintains an internal master/slave, post/wait relationship with the Web Server thread being debugged. The initial action of the worker thread is to announce itself to the Debugger Client in the &amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_GUIlabel&quot;&amp;gt;Audit Trail&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; page&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: [[File:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;workeraudit2b_zoom65&lt;/ins&gt;.gif|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;692x166px&lt;/ins&gt;|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;workerAudit2b&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/del&gt;[[File:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;worker2cli2a_zoom75&lt;/del&gt;.gif|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;848x360px&lt;/del&gt;|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;worker2cli2a&lt;/del&gt;]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&amp;gt; --&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4&lt;/del&gt;. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The worker &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;then continues in a loop/dialogue with the Client, reporting its state and latest activity to the Client, and receiving XML requests from &lt;/del&gt;the Client (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;commands that are &lt;/del&gt;based on &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;what the Debugger GUI &lt;/del&gt;user &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is invoking&lt;/del&gt;)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. If &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;normal &lt;/del&gt;Web Server &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;response &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;your web request is &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;include a &lt;/del&gt;&amp;lt;/span&amp;gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;var&lt;/del&gt;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Model 204&lt;/del&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;var&lt;/del&gt;&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;procedure, for example, the Client sends the worker a command to have the Web Server continue, the worker posts that command to the Web Server, the worker sends AUDIT lines about this exchange, and the worker waits. &lt;/del&gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: 3&lt;/ins&gt;. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The worker &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;thread is directed by &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Debugger &lt;/ins&gt;Client (based on user &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interface actions&lt;/ins&gt;)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, and the worker thread maintains an internal master/slave, post/wait relationship with &lt;/ins&gt;the Web Server &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;thread being debugged. The initial action of the worker thread is &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;announce itself &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the Debugger Client in the &lt;/ins&gt;&amp;lt;/span&amp;gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;span class=&quot;f_GUIlabel&quot;&lt;/ins&gt;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Audit Trail&lt;/ins&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;span&lt;/ins&gt;&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;page: &lt;/ins&gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: [[File:worker2cli2a_zoom75.gif|848x360px|worker2cli2a]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;5. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;While the worker thread waits, the Client sends your web request to the Janus Web Server. The worker&#039;s wait limit is two minutes, so it will time out and end if the request fails for any reason. Otherwise, the Web Server recognizes the  debugging session ID, so sends its response to the worker. In this example, the response is procedure code, which is sent to the worker instead of being run. The worker wakes up, sends the procedure code in an XML document to the Client, and the Client displays the procedure code in the Debugger &amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_GUIlabel&quot;&amp;gt;Source Code&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: 4. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The worker then continues in a loop/dialogue with the Client, reporting its state and latest activity to the Client, and receiving XML requests from the Client (commands that are based on what the Debugger GUI user is invoking). If the normal Web Server response to your web request is to include a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; procedure, for example, the Client sends the worker a command to have the Web Server continue, the worker posts that command to the Web Server, the worker sends AUDIT lines about this exchange, and the worker waits. &amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/del&gt;[[File:clisource2b_zoom75.gif|599x411px|cliSource2b]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt;  &amp;lt;/span&amp;gt; --&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;5. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;While the worker thread waits, the Client sends your web request to the Janus Web Server. The worker&#039;s wait limit is two minutes, so it will time out and end if the request fails for any reason. Otherwise, the Web Server recognizes the  debugging session ID, so sends its response to the worker. In this example, the response is procedure code, which is sent to the worker instead of being run. The worker wakes up, sends the procedure code in an XML document to the Client, and the Client displays the procedure code in the Debugger &amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_GUIlabel&quot;&amp;gt;Source Code&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;[[File:clisource2b_zoom75.gif|599x411px|cliSource2b]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: The worker thread reports its actions thus far in the lines below that begin with three asterisks (&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;***&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;). &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker refers to the Web Server thread as the &amp;amp;quot;debuggee&amp;amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: The worker thread reports its actions thus far in the lines below that begin with three asterisks (&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;***&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;). &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker refers to the Web Server thread as the &amp;amp;quot;debuggee&amp;amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/del&gt;[[File:workeraudit2_zoom65.gif|692x235px|workerAudit2]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;span id=&quot;worker_audit_lines&quot; class=&quot;hmanchor&quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt; --&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;[[File:workeraudit2_zoom65.gif|692x235px|workerAudit2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;6. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The Client-worker-Web Server communication continues in this fashion according to the commands invoked by the Client GUI user. The Client user initiates the next round of activity by invoking an operation on the source code, say, stepping to the next statement. The Client signals the worker, and the worker instructs the Web Server thread. The worker reports a sequence of audit lines similar to the previous ones (the ending &amp;lt;/span&amp;gt;&amp;lt;span class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;f_Monospace&lt;/del&gt;&quot;&amp;gt;N&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;&#039;s below mean &amp;amp;quot;run to &amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;N&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;ext statement&amp;amp;quot; and &amp;amp;quot;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;N&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;ext statement executed&amp;amp;quot;):&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;6. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;The Client-worker-Web Server communication continues in this fashion according to the commands invoked by the Client GUI user. The Client user initiates the next round of activity by invoking an operation on the source code, say, stepping to the next statement. The Client signals the worker, and the worker instructs the Web Server thread. The worker reports a sequence of audit lines similar to the previous ones (the ending &amp;lt;/span&amp;gt;&amp;lt;span class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;term&lt;/ins&gt;&quot;&amp;gt;N&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;&#039;s below mean &amp;amp;quot;run to &amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;N&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;ext statement&amp;amp;quot; and &amp;amp;quot;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;N&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;ext statement executed&amp;amp;quot;):&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/del&gt;[[File:workeraudit3_zoom65.gif|558x81px|workerAudit3]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&amp;gt; --&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;[[File:workeraudit3_zoom65.gif|558x81px|workerAudit3]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;7. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;In case you need to debug the Debugger, you can access the XML traffic exchanged between the worker and Debugger Client. To do so, use the JANUS TRACE command (described in the &amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;N&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;) to increase the tracing on the Debugger Server port (in this example, DEBUGSERVER3355), and use &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; to view the traffic. The JANUS DISPLAYTRACE command reveals the current trace value. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/ins&gt;7. &amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;In case you need to debug the Debugger, you can access the XML traffic exchanged between the worker and Debugger Client. To do so, use the JANUS TRACE command (described in the &amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;N&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt;) to increase the tracing on the Debugger Server port (in this example, DEBUGSERVER3355), and use &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListNum1&quot;&amp;gt; to view the traffic. The JANUS DISPLAYTRACE command reveals the current trace value. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Since a high tracing value, say &amp;lt;span class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;f_Monospace&lt;/del&gt;&quot;&amp;gt;15&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt;, can capture huge amounts of data, remember to return the tracing setting to its former value when you no longer need so much detail.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;: Since a high tracing value, say &amp;lt;span class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;term&lt;/ins&gt;&quot;&amp;gt;15&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt;, can capture huge amounts of data, remember to return the tracing setting to its former value when you no longer need so much detail.&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Also of possible use in a debugging situation, the Debugger Client installation folder is the [[Changing the location of Client work files|default location]] for a text log (&amp;lt;span class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;f_Monospace&lt;/del&gt;&quot;&amp;gt;log.txt&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt;) that includes the Client and workstation browser activity that is captured by the Client. &amp;lt;span id=&quot;log_client_jd&quot; class=&quot;hmanchor&quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;: Also of possible use in a debugging situation, the Debugger Client installation folder is the [[Changing the location of Client work files|default location]] for a text log (&amp;lt;span class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;term&lt;/ins&gt;&quot;&amp;gt;log.txt&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt;) that includes the Client and workstation browser activity that is captured by the Client. &amp;lt;span id=&quot;log_client_jd&quot; class=&quot;hmanchor&quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Debugger Home]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Debugger Home]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ekern</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Debugging_the_Janus_Debugger&amp;diff=119653&amp;oldid=prev</id>
		<title>Ekern at 03:20, 4 April 2023</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Debugging_the_Janus_Debugger&amp;diff=119653&amp;oldid=prev"/>
		<updated>2023-04-04T03:20:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:20, 4 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The Debugger Server communicates over a socket connection with the Client and creates a worker thread for this debugging session. The connection handshake contains a unique ID from the Client for this debugging session. The Server worker thread uses AUDIT statements to report its activities to the &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; audit trail. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The Debugger Server communicates over a socket connection with the Client and creates a worker thread for this debugging session. The connection handshake contains a unique ID from the Client for this debugging session. The Server worker thread uses AUDIT statements to report its activities to the &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; audit trail. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: The following &amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; audit trail lines for user SOCKUSER report the Debugger Server activity described thus far. The session ID is encircled. Subsequent worker thread lines are shown &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Debugging the Janus Debuggerl#worker_audit_lines|&lt;/del&gt;later&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]: &lt;/del&gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: The following &amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; audit trail lines for user SOCKUSER report the Debugger Server activity described thus far. The session ID is encircled. Subsequent worker thread lines are shown later&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. &lt;/ins&gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/ins&gt;[[File:workeraudit2b_zoom65.gif|692x166px|workerAudit2b]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; --&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:workeraudit2b_zoom65.gif|692x166px|workerAudit2b]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker thread is directed by the Debugger Client (based on user interface actions), and the worker thread maintains an internal master/slave, post/wait relationship with the Web Server thread being debugged. The initial action of the worker thread is to announce itself to the Debugger Client in the &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_GUIlabel&amp;quot;&amp;gt;Audit Trail&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker thread is directed by the Debugger Client (based on user interface actions), and the worker thread maintains an internal master/slave, post/wait relationship with the Web Server thread being debugged. The initial action of the worker thread is to announce itself to the Debugger Client in the &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_GUIlabel&amp;quot;&amp;gt;Audit Trail&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/ins&gt;[[File:worker2cli2a_zoom75.gif|848x360px|worker2cli2a]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; --&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:worker2cli2a_zoom75.gif|848x360px|worker2cli2a]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker then continues in a loop/dialogue with the Client, reporting its state and latest activity to the Client, and receiving XML requests from the Client (commands that are based on what the Debugger GUI user is invoking). If the normal Web Server response to your web request is to include a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; procedure, for example, the Client sends the worker a command to have the Web Server continue, the worker posts that command to the Web Server, the worker sends AUDIT lines about this exchange, and the worker waits. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker then continues in a loop/dialogue with the Client, reporting its state and latest activity to the Client, and receiving XML requests from the Client (commands that are based on what the Debugger GUI user is invoking). If the normal Web Server response to your web request is to include a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; procedure, for example, the Client sends the worker a command to have the Web Server continue, the worker posts that command to the Web Server, the worker sends AUDIT lines about this exchange, and the worker waits. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;5. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;While the worker thread waits, the Client sends your web request to the Janus Web Server. The worker&amp;#039;s wait limit is two minutes, so it will time out and end if the request fails for any reason. Otherwise, the Web Server recognizes the  debugging session ID, so sends its response to the worker. In this example, the response is procedure code, which is sent to the worker instead of being run. The worker wakes up, sends the procedure code in an XML document to the Client, and the Client displays the procedure code in the Debugger &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_GUIlabel&amp;quot;&amp;gt;Source Code&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;5. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;While the worker thread waits, the Client sends your web request to the Janus Web Server. The worker&amp;#039;s wait limit is two minutes, so it will time out and end if the request fails for any reason. Otherwise, the Web Server recognizes the  debugging session ID, so sends its response to the worker. In this example, the response is procedure code, which is sent to the worker instead of being run. The worker wakes up, sends the procedure code in an XML document to the Client, and the Client displays the procedure code in the Debugger &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_GUIlabel&amp;quot;&amp;gt;Source Code&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/ins&gt;[[File:clisource2b_zoom75.gif|599x411px|cliSource2b]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt;  &amp;lt;/span&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; --&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:clisource2b_zoom75.gif|599x411px|cliSource2b]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: The worker thread reports its actions thus far in the lines below that begin with three asterisks (&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;***&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;). &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker refers to the Web Server thread as the &amp;amp;quot;debuggee&amp;amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: The worker thread reports its actions thus far in the lines below that begin with three asterisks (&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;***&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;). &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker refers to the Web Server thread as the &amp;amp;quot;debuggee&amp;amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;: &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/ins&gt;[[File:workeraudit2_zoom65.gif|692x235px|workerAudit2]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;span id=&quot;worker_audit_lines&quot; class=&quot;hmanchor&quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; --&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:workeraudit2_zoom65.gif|692x235px|workerAudit2]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;span id=&quot;worker_audit_lines&quot; class=&quot;hmanchor&quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;6. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The Client-worker-Web Server communication continues in this fashion according to the commands invoked by the Client GUI user. The Client user initiates the next round of activity by invoking an operation on the source code, say, stepping to the next statement. The Client signals the worker, and the worker instructs the Web Server thread. The worker reports a sequence of audit lines similar to the previous ones (the ending &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;N&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;&amp;#039;s below mean &amp;amp;quot;run to &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;ext statement&amp;amp;quot; and &amp;amp;quot;&amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;ext statement executed&amp;amp;quot;):&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;6. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The Client-worker-Web Server communication continues in this fashion according to the commands invoked by the Client GUI user. The Client user initiates the next round of activity by invoking an operation on the source code, say, stepping to the next statement. The Client signals the worker, and the worker instructs the Web Server thread. The worker reports a sequence of audit lines similar to the previous ones (the ending &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;N&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;&amp;#039;s below mean &amp;amp;quot;run to &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;ext statement&amp;amp;quot; and &amp;amp;quot;&amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;ext statement executed&amp;amp;quot;):&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/ins&gt;[[File:workeraudit3_zoom65.gif|558x81px|workerAudit3]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt; --&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:workeraudit3_zoom65.gif|558x81px|workerAudit3]]&amp;lt;span class=&quot;f_ListContinue&quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;7. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;In case you need to debug the Debugger, you can access the XML traffic exchanged between the worker and Debugger Client. To do so, use the JANUS TRACE command (described in the &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;) to increase the tracing on the Debugger Server port (in this example, DEBUGSERVER3355), and use &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; to view the traffic. The JANUS DISPLAYTRACE command reveals the current trace value. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;7. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;In case you need to debug the Debugger, you can access the XML traffic exchanged between the worker and Debugger Client. To do so, use the JANUS TRACE command (described in the &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;) to increase the tracing on the Debugger Server port (in this example, DEBUGSERVER3355), and use &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; to view the traffic. The JANUS DISPLAYTRACE command reveals the current trace value. &amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ekern</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Debugging_the_Janus_Debugger&amp;diff=119126&amp;oldid=prev</id>
		<title>Ekern: Created page with &quot;__TOC__ &lt;span class=&quot;f_Para&quot;&gt;Whenever your browser sends a web request to a &lt;/span&gt;&lt;var&gt;Janus Web Server&lt;/var&gt;&lt;span class=&quot;f_Para&quot;&gt; that has been configured for debugging, thi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Debugging_the_Janus_Debugger&amp;diff=119126&amp;oldid=prev"/>
		<updated>2022-11-08T00:27:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__TOC__ &amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt;Whenever your browser sends a web request to a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Janus Web Server&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt; that has been configured for debugging, thi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt;Whenever your browser sends a web request to a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Janus Web Server&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_Para&amp;quot;&amp;gt; that has been configured for debugging, this sequence of events unfolds: &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;Before sending your web request, the Client on the workstation, which is [[Configure web browser (Janus Debugger only)|defined]] as your proxy server, connects to the Debugger Server port on the online (configured during [[Define and start the Debugger Server port|installation]]). The Debugger Server starts a thread whose default user ID is SOCKUSER. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The Debugger Server communicates over a socket connection with the Client and creates a worker thread for this debugging session. The connection handshake contains a unique ID from the Client for this debugging session. The Server worker thread uses AUDIT statements to report its activities to the &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; audit trail. &amp;lt;/span&amp;gt;&lt;br /&gt;
: The following &amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt; audit trail lines for user SOCKUSER report the Debugger Server activity described thus far. The session ID is encircled. Subsequent worker thread lines are shown [[Debugging the Janus Debuggerl#worker_audit_lines|later]]: &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:workeraudit2b_zoom65.gif|692x166px|workerAudit2b]]&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker thread is directed by the Debugger Client (based on user interface actions), and the worker thread maintains an internal master/slave, post/wait relationship with the Web Server thread being debugged. The initial action of the worker thread is to announce itself to the Debugger Client in the &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_GUIlabel&amp;quot;&amp;gt;Audit Trail&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:worker2cli2a_zoom75.gif|848x360px|worker2cli2a]]&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker then continues in a loop/dialogue with the Client, reporting its state and latest activity to the Client, and receiving XML requests from the Client (commands that are based on what the Debugger GUI user is invoking). If the normal Web Server response to your web request is to include a &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;Model 204&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; procedure, for example, the Client sends the worker a command to have the Web Server continue, the worker posts that command to the Web Server, the worker sends AUDIT lines about this exchange, and the worker waits. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;While the worker thread waits, the Client sends your web request to the Janus Web Server. The worker&amp;#039;s wait limit is two minutes, so it will time out and end if the request fails for any reason. Otherwise, the Web Server recognizes the  debugging session ID, so sends its response to the worker. In this example, the response is procedure code, which is sent to the worker instead of being run. The worker wakes up, sends the procedure code in an XML document to the Client, and the Client displays the procedure code in the Debugger &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_GUIlabel&amp;quot;&amp;gt;Source Code&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; page: &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:clisource2b_zoom75.gif|599x411px|cliSource2b]]&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;  &amp;lt;/span&amp;gt;&lt;br /&gt;
: The worker thread reports its actions thus far in the lines below that begin with three asterisks (&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;***&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;). &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The worker refers to the Web Server thread as the &amp;amp;quot;debuggee&amp;amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;: &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:workeraudit2_zoom65.gif|692x235px|workerAudit2]]&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt; &amp;lt;span id=&amp;quot;worker_audit_lines&amp;quot; class=&amp;quot;hmanchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;The Client-worker-Web Server communication continues in this fashion according to the commands invoked by the Client GUI user. The Client user initiates the next round of activity by invoking an operation on the source code, say, stepping to the next statement. The Client signals the worker, and the worker instructs the Web Server thread. The worker reports a sequence of audit lines similar to the previous ones (the ending &amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;N&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;&amp;#039;s below mean &amp;amp;quot;run to &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;ext statement&amp;amp;quot; and &amp;amp;quot;&amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;ext statement executed&amp;amp;quot;):&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:workeraudit3_zoom65.gif|558x81px|workerAudit3]]&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. &amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;In case you need to debug the Debugger, you can access the XML traffic exchanged between the worker and Debugger Client. To do so, use the JANUS TRACE command (described in the &amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt;) to increase the tracing on the Debugger Server port (in this example, DEBUGSERVER3355), and use &amp;lt;/span&amp;gt;&amp;lt;var&amp;gt;SirScan&amp;lt;/var&amp;gt;&amp;lt;span class=&amp;quot;f_ListNum1&amp;quot;&amp;gt; to view the traffic. The JANUS DISPLAYTRACE command reveals the current trace value. &amp;lt;/span&amp;gt;&lt;br /&gt;
: Since a high tracing value, say &amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;15&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;, can capture huge amounts of data, remember to return the tracing setting to its former value when you no longer need so much detail.&amp;lt;/span&amp;gt;&lt;br /&gt;
: Also of possible use in a debugging situation, the Debugger Client installation folder is the [[Changing the location of Client work files|default location]] for a text log (&amp;lt;span class=&amp;quot;f_Monospace&amp;quot;&amp;gt;log.txt&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;f_ListContinue&amp;quot;&amp;gt;) that includes the Client and workstation browser activity that is captured by the Client. &amp;lt;span id=&amp;quot;log_client_jd&amp;quot; class=&amp;quot;hmanchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Debugger Home]]&lt;/div&gt;</summary>
		<author><name>Ekern</name></author>
	</entry>
</feed>