<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://panoptic.com/mediawiki/aolserver/index.php?action=history&amp;feed=atom&amp;title=Ns_adp_debuginit</id>
	<title>Ns adp debuginit - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://panoptic.com/mediawiki/aolserver/index.php?action=history&amp;feed=atom&amp;title=Ns_adp_debuginit"/>
	<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_adp_debuginit&amp;action=history"/>
	<updated>2026-04-25T21:23:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_adp_debuginit&amp;diff=5750&amp;oldid=prev</id>
		<title>Akhassin at 00:36, 14 June 2010</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_adp_debuginit&amp;diff=5750&amp;oldid=prev"/>
		<updated>2010-06-14T00:36:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 00:36, 14 June 2010&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-l17&quot; &gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;: There are several issues with the current version of this command:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;: There are several issues with the current version of this command:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;1. &lt;/del&gt;If procsPattern is specified, it creates a temporary file with a dump of matching proc bodies, args, etc.  For a wide pattern such as *, this can take quite some time.  It would be best to cache it or for *, to obtain this from ns_ictl get.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;:# &lt;/ins&gt;If procsPattern is specified, it creates a temporary file with a dump of matching proc bodies, args, etc.  For a wide pattern such as *, this can take quite some time.  It would be best to cache it or for *, to obtain this from ns_ictl get.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;2. &lt;/del&gt;If there is an error in connecting to the debugger after creating such a temporary file, this file is not cleaned up.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;:# &lt;/ins&gt;If there is an error in connecting to the debugger after creating such a temporary file, this file is not cleaned up.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;3. &lt;/del&gt;The whole enabledebug facility is a major security flaw and is unusable on any public-facing server.  What's needed is some kind of a white list (i.e. private IP address ranges only) or perhaps nsperms authentication trigger when debugging is requested.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;:# &lt;/ins&gt;The whole enabledebug facility is a major security flaw and is unusable on any public-facing server.  What's needed is some kind of a white list (i.e. private IP address ranges only) or perhaps nsperms authentication trigger when debugging is requested.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;'''SEE ALSO'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;'''SEE ALSO'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Akhassin</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_adp_debuginit&amp;diff=5749&amp;oldid=prev</id>
		<title>Akhassin: Created page with ''''NAME'''  : ns_adp_debuginit - Start TclPro debugging  '''SYNOPSIS'''  : '''ns_adp_debuginit''' ''?procsPattern?'' ''?host?'' ''?port?''  '''DESCRIPTION'''  : This command enab…'</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_adp_debuginit&amp;diff=5749&amp;oldid=prev"/>
		<updated>2010-06-14T00:36:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;#039;&amp;#039;&amp;#039;NAME&amp;#039;&amp;#039;&amp;#039;  : ns_adp_debuginit - Start TclPro debugging  &amp;#039;&amp;#039;&amp;#039;SYNOPSIS&amp;#039;&amp;#039;&amp;#039;  : &amp;#039;&amp;#039;&amp;#039;ns_adp_debuginit&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;?procsPattern?&amp;#039;&amp;#039; &amp;#039;&amp;#039;?host?&amp;#039;&amp;#039; &amp;#039;&amp;#039;?port?&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;DESCRIPTION&amp;#039;&amp;#039;&amp;#039;  : This command enab…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: ns_adp_debuginit - Start TclPro debugging&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_adp_debuginit''' ''?procsPattern?'' ''?host?'' ''?port?''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: This command enables basic debugging when used with the TclPro debugger.  It will connect to a remote debugger if not already connected.  The procsPattern argument specifies a glob pattern to match Tcl procedures to be instrumented by the debugger and the host and port arguments are passed to the TclPro debugger_init procedure to connect to the remote debugger.&lt;br /&gt;
&lt;br /&gt;
'''NOTES'''&lt;br /&gt;
&lt;br /&gt;
: This command is written in tcl and is in the debug.tcl file and is the default adp debuginit command that gets triggered when enabledebug adp config parameter is true and &amp;amp;debug=filePattern is present in the query string.&lt;br /&gt;
: Despite its name, it's not really specific to adps.  You can also execute this proc manually, then evaluate some code inside a debugger_eval {} as long as you make sure to call ns_markfordelete after calling this proc.&lt;br /&gt;
&lt;br /&gt;
: There are several issues with the current version of this command:&lt;br /&gt;
1. If procsPattern is specified, it creates a temporary file with a dump of matching proc bodies, args, etc.  For a wide pattern such as *, this can take quite some time.  It would be best to cache it or for *, to obtain this from ns_ictl get.&lt;br /&gt;
2. If there is an error in connecting to the debugger after creating such a temporary file, this file is not cleaned up.&lt;br /&gt;
3. The whole enabledebug facility is a major security flaw and is unusable on any public-facing server.  What's needed is some kind of a white list (i.e. private IP address ranges only) or perhaps nsperms authentication trigger when debugging is requested.&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
:[[ns_adp_debug]], [[ns_markfordelete]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]] - [[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Akhassin</name></author>
		
	</entry>
</feed>