<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Starting in Debug Mode</title><meta content="DocBook XSL Stylesheets V1.76.0" name="generator"><link rel="home" href="index.html" title="Virgo User Guide"><link rel="up" href="ch07.html" title="Chapter&nbsp;7.&nbsp;Starting and Stopping Virgo Server for Apache Tomcat"><link rel="prev" href="ch07s02.html" title="Starting in Clean Mode"><link rel="next" href="ch07s04.html" title="Starting with JMX Access Modifications"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><td align="left" width="20%"><a accesskey="p" href="ch07s02.html">Prev</a>&nbsp;</td><th align="center" width="60%">&nbsp;</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="ch07s04.html">Next</a></td></tr></table><hr></div><div class="section" title="Starting in Debug Mode"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N106E8"></a>Starting in Debug Mode</h2></div></div></div><div class="section" title="Linux"><div class="titlepage"><div><div><h3 class="title"><a name="N106EB"></a>Linux</h3></div></div></div><p>
	        To start Virgo Server for Apache Tomcat in debug mode, run
	        <code class="literal">startup.sh</code> passing in the
	        <code class="literal">-debug</code> argument:
	      </p><pre class="screen">prompt$ cd $SERVER_HOME
prompt$ bin/startup.sh -debug</pre><p>
	        This will start the debug agent listening on port
	        <code class="literal">8000</code> which is the default remote debug port used
	        by Eclipse. To start in debug mode with a specific port number, pass
	        this in as the value for the <code class="literal">-debug</code> argument:
	      </p><pre class="screen">prompt$ cd $SERVER_HOME
prompt$ bin/startup.sh -debug 8001</pre><p>
	        This will start the debug agent listening on port
	        <code class="literal">8001</code>. To start in debug mode and suspend the VM
	        until a debugger attaches, pass in the <code class="literal">-suspend</code>
	        argument along with the <code class="literal">-debug</code> argument:
	      </p><pre class="screen">prompt$ cd $SERVER_HOME
prompt$ bin/startup.sh -debug -suspend</pre><p>
	        This starts the debug agent, but prevents Virgo Server for Apache Tomcat from actually
	        starting until a debugger attaches to the agent. This can be useful
	        when trying to diagnose problems that occur during startup.
	      </p></div><div class="section" title="Microsoft Windows"><div class="titlepage"><div><div><h3 class="title"><a name="N1071B"></a>Microsoft Windows</h3></div></div></div><p>
	        To start Virgo Server for Apache Tomcat in debug mode, run
	        <code class="literal">startup.bat</code> passing in the
	        <code class="literal">-debug</code> argument:
	      </p><pre class="screen">prompt&gt; cd %SERVER_HOME%
prompt&gt; bin\startup.bat -debug</pre><p>
	        This will start the debug agent listening on port
	        <code class="literal">8000</code> which is the default remote debug port used
	        by Eclipse. To start in debug mode with a specific port number, pass
	        this in as the value for the <code class="literal">-debug</code> argument:
	      </p><pre class="screen">prompt&gt; cd %SERVER_HOME%
prompt&gt; bin\startup.bat -debug 8001</pre><p>
	        This will start the debug agent listening on port
	        <code class="literal">8001</code>. To start in debug mode and suspend the VM
	        until a debugger attaches, pass in the <code class="literal">-suspend</code>
	        argument along with the <code class="literal">-debug</code> argument:
	      </p><pre class="screen">prompt&gt; cd %SERVER_HOME%
prompt&gt; bin\startup.bat -debug -suspend</pre><p>
	        This starts the debug agent, but prevents Virgo Server for Apache Tomcat from actually
	        starting until a debugger attaches to the agent. This can be useful
	        when trying to diagnose problems that occur during startup.
	      </p></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch07s02.html">Prev</a>&nbsp;</td><td align="center" width="20%"><a accesskey="u" href="ch07.html">Up</a></td><td align="right" width="40%">&nbsp;<a accesskey="n" href="ch07s04.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;</td></tr></table></div></body></html>