Difference between revisions of "Ns adp debuginit"
Jump to navigation
Jump to search
(Created page with ''''NAME''' : ns_adp_debuginit - Start TclPro debugging '''SYNOPSIS''' : '''ns_adp_debuginit''' ''?procsPattern?'' ''?host?'' ''?port?'' '''DESCRIPTION''' : This command enab…') |
|||
Line 17: | Line 17: | ||
: There are several issues with the current version of this command: | : There are several issues with the current version of this command: | ||
− | + | :# 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. | |
− | + | :# If there is an error in connecting to the debugger after creating such a temporary file, this file is not cleaned up. | |
− | + | :# 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. | |
'''SEE ALSO''' | '''SEE ALSO''' |
Latest revision as of 00:36, 14 June 2010
NAME
- ns_adp_debuginit - Start TclPro debugging
SYNOPSIS
- ns_adp_debuginit ?procsPattern? ?host? ?port?
DESCRIPTION
- 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.
NOTES
- 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 &debug=filePattern is present in the query string.
- 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.
- There are several issues with the current version of this command:
- 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.
- If there is an error in connecting to the debugger after creating such a temporary file, this file is not cleaned up.
- 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.
SEE ALSO
-