Cant "Relaunch" in a CGI debugging session

Help
kittekat
2007-09-19
2013-05-20
  • kittekat
    kittekat
    2007-09-19

    I have problems to relaunch the debugging after a successful CGI debugging session

    I im running Eclise 3.3.0 (Build id: I20070625-1500) and EPIC 0.6.15 with Perl 5.8.8 on an Ubuntu 6.10 / Kernel 2.6.17-12.

    Starting a CGI debugging session after "Open Debug Dialog" works fine:

    in the "Console View":
    Found default config file
    Server started on 5004
    LOG: 5 5004-server: main.: starting handler: cgi
    LOG: 5 5004-server: main.: starting handler: file
    >>>>>>>>> here I clicked the link to my cgi script in the index.html form of the internal browser
    LOG: 4 5004-server: 127.0.0.1: new connection
    LOG: 3 5004-127.0.0.1-0: Request 24 GET / HTTP/1.1
    LOG: 5 5004-127.0.0.1-0: main.: invoking handler: cgi
    LOG: 5 5004-127.0.0.1-0: suffix=.cgi,.pl,.pm root=/var/www url: /
    LOG: 5 5004-127.0.0.1-0: Checking for suffix: .cgi
    LOG: 5 5004-127.0.0.1-0: looking for: /var/www/.cgi
    LOG: 5 5004-127.0.0.1-0: Checking for suffix: .pl
    LOG: 5 5004-127.0.0.1-0: looking for: /var/www/.pl
    LOG: 5 5004-127.0.0.1-0: Checking for suffix: .pm
    LOG: 5 5004-127.0.0.1-0: looking for: /var/www/.pm
    LOG: 5 5004-127.0.0.1-0: main.: invoking handler: file
    LOG: 5 5004-127.0.0.1-0: file.: Looking for file: (/var/www)(/)
    LOG: 3 5004-127.0.0.1-0: request done
    LOG: 3 5004-127.0.0.1-0: Request 23 GET /myCGI/time_test.cgi HTTP/1.1
    LOG: 5 5004-127.0.0.1-0: main.: invoking handler: cgi
    LOG: 5 5004-127.0.0.1-0: suffix=.cgi,.pl,.pm root=/var/www url: /myCGI/time_test.cgi
    LOG: 5 5004-127.0.0.1-0: Checking for suffix: .cgi
    LOG: 5 5004-127.0.0.1-0: looking for: /var/www/myCGI.cgi
    LOG: 5 5004-127.0.0.1-0: looking for: /var/www/myCGI/time_test.cgi
    LOG: 5 5004-127.0.0.1-0: found: /var/www/myCGI/time_test.cgi
    >>>>>>>>>> here I could do the debugging of the cgi script
    LOG: 5 5004-127.0.0.1-0: CGI output 710 bytes.
    LOG: 3 5004-127.0.0.1-0: request done
    >>>>>>>>>> here my cgi script was finished
    LOG: 3 5004-127.0.0.1-0: Error: 408 Request Time-out: Read timed out
    LOG: 4 5004-127.0.0.1-0: socket close
    >>>>>>>>>> 30 seconds later this timeout happens

    in the "Debug View" the "Web Server" status is "suspended" in the last line of my cgi script

    Now I dont know how to continue. When I try to "Relaunch" or "Terminate and Relaunch", I see in the "Console View"
    Found default config file
    Server started on 5009
    LOG: 5 5009-server: main.: starting handler: cgi
    LOG: 5 5009-server: main.: starting handler: file

    so another virtual web server has been startet - and I see the usual timeout popup: "could anot conncet to debug port"

    the only way I found to debug again is to exit eclipse and start it again

    Is this behavior the expected one, or did I miss an essential hint in the manual pages?
     

     
    • Jan Ploski
      Jan Ploski
      2007-09-19

      It should not hang in the last line of the script. This is a bug, but difficult to reproduce. Maybe the output from the debugger console (see other posts) when this happens would help.

       
    • kittekat
      kittekat
      2007-09-20

      When the CGI script is run through, the little arrow left in the "Source" view (indicating the next statement to be executed) disappears - which is reasonable. in the "Debug" view I can see:
      myCGI [Perl CGI]                   <<<< this is my project
        CGI Perl Debugger
          Web Server
            <suspended> Main Thread
              time_test.cgi[line: 28]      <<<< this is the last line of my cgi script
          CGI Process

      this it looks fine to my opinion.

      I have added in the generated CGI form a link back to the home page, which allows me to call from there the cgi script again. Doing so, the debugger snaps in again on the first line of my cgi script. Great!

      So to solve my problem, I have to formulate another question:
      How do I properly terminate a CGI debugging session, allowing another debugging session to be started or relaunched (without a webserver  complaining "could not connect to debug port")?

       
      • Jan Ploski
        Jan Ploski
        2007-09-20

        To terminate a debugging session, select it in the Debug view and click the red Terminate button in the view's toolbar above it. IF the session terminates properly, then you can also remove it completely from this view using the X button. The reverse is also true: if the X button works, then you are sure that the session was terminated properly.

        However, the output you describe, with the last line of script still being displayed in the view even though the script has finished, does not appear correct to me. When a CGI script terminates, its name and stack should disappear completely from the Debug view. Only the entry indicating that the web server is running should remain. When you request another script from the browser (by following a link or entering an address directly, doesn't matter), then it should appear under the web server entry.

         
    • kittekat
      kittekat
      2007-09-20

      Thanks for the help - I did not take notice before the red Terminate button and the X button in the toolbar of the Debug view.
      Anyway - the essential hint was to select the [Perl CGI] session in the Debug view before terminating - then the X button also works.