Here you will find information about Classic Debugger. [WORK IN PROGRESS]

Q: How can I change the default port (1098) on which Classic Debugger is
   listening?

A: During its startup, classic-debug.rb, takes a look whether $RemoteDebugPort
   global variable is defined. If yes the debugger will use the value of
   $RemoteDebugPort variable, otherwise default port (1098) is used. So you may
   start the debugger with requiring a script with "$RemoteDebugPort=46951" as
   the only content. E.g.:

     $ ruby -r classic-debug.rb test.rb # default port will be used
     ruby 1.8.5 debugger listens on port 1098

     $ cat my_port.rb
     $RemoteDebugPort=12345
     $ ruby -r my_port.rb -r classic-debug.rb test.rb # port 12345 will be used
     ruby 1.8.5 debugger listens on port 12345


========================================================================
========================================================================

Protocol Specification:
-----------------------

  <frame_no>   ::= <int>
  <id>        ::= <int>
  <line_no>   ::= <int>
  <path>      ::= [path_to_script]
  <status>    ::= run|sleep

========================================================================
Adding breakpoint
-----------------

Command: 

  b <script>:<line_no>
  b test.rb:2

Answer:

  <breakpointAdded no="<id>" location="<script>:<line_no>"/>
  <breakpointAdded no="1" location="test.rb:2"/>

========================================================================
Breakpoint hit event
--------------------

  <breakpoint file="<script>" line="<line_no>" threadId="<id>"/>
  <breakpoint file="test.rb" line="2" threadId="1"/>

========================================================================
Thread listing
--------------

Command:

  th l

Answer:

  <threads>
    <thread id="<id>" status="<status>"/>
    <thread id="2" status="sleep"/>
  </threads>

========================================================================
Frame listing
-------------

Command:

  th 1; w

Answer:

  <frames>
    <frame no="<frame_no>" file="<script>" line="<line_no>"/>
  </frames>

========================================================================
Variables listing
-----------------

Command:

  frame 1; v local

Answer:

  <variables>
    <variable name="array" kind="local" value="Array (2 element(s))" type="Array" hasChildren="true" objectId="-0x2418a904"/>
  </variables>

Command:

  v i array

Answer:

  <variables>
    <variable name="[0]" kind="instance" value="1" type="Fixnum" hasChildren="false" objectId="+0x3"/>
    <variable name="[1]" kind="instance" value="2" type="Fixnum" hasChildren="false" objectId="+0x5"/>
  </variables>

========================================================================
