Re: Running gdb/circle/telnet from one tty

From: Pink Floyd (floyd@south.mit.edu)
Date: 08/11/95


>That won't work.  You can put gdb in the background but not while its 
>running something.
>  example:
>    "gdb" starts it up.
>    "run"  starts circle.
>    "ctrl-z"  Stops circle and gets you a gdb prompt again.
>    "ctrl-z" stops gdb
>    "bg %1" starts gdb in bacground but circle is still stopped.
>  useless.

>   You must have 2 connections in order to use the gnu debugger AND telnet 
>   into your mud at the same time.  Whether that be from virtual consoles, 
>   sitting at an X-station, using trumpet winsocket/slip/ppp from windows.  
>   Whatever.  The fact remains that you cannot telnet into the game while 
>   gdb is running from the same terminal.  <you can detatch the gdb process 
>   from circle altogether and then telnet in but thats not what your wanting 
>   to do.>

My original statement of how to do it was incorrect, but it can possibly be 
done afterall (although its a little bit involved).  Try this:
create a small text file, each line being a command you want to give gdb.
eg. run.txt
 break set_title
 run -m

(make sure you have one blank line at the end so it hits enter after the last 
command).  Then, from the circle directory, type this:

: gdb bin/circle < run.txt &
 [gdb startup and regular mud output during startup]
 [No connections, going to sleep.]
: telnet localhost 4000

Now go to the bug, and it will break or crash or whatever, then you can suspend
telnet with Ctrl^] <Enter> Ctrl-Z and bring gdb to the foreground by finding 
its jobs number and typing 'fg %<job number>'.  You might not be able to 
suspend gdb again at this point, though, so get as much done as you can with
the one chance you get.
Something important to note, if your original connection to the system is 
through telnet, then hitting Ctrl^] will give you the command mode for THAT 
telnet session... then you have to type 'send escape' to enter the command mode
for the 'telnet localhost 4000', then you can suspend that with Ctrl-Z.

I briefly tried this and it seems to work, I get the feeling that if you play
around with it a bit more you can make it useable.
However, it is much easier to just telnet into the mud from a second 
connection, which could also be established on your original site by suspending
the first telnet (the one running gdb/circle etc.) and opening a new connection
to the site. Or, in fact, you could telnet to your localhost, login, start gdb
and the mud, suspend that telnet (gdb will continue to run, just no input)
then open a new telnet to the localhost 4000).



This archive was generated by hypermail 2b30 : 12/18/00 PST