Shared screen for help with simultaneous debugging

Kumar Rangarajan <[email protected]> Sun, 15 Jun 2008 22:29:27 +0530
Newsgroups gmane.comp.gnu.screen
Message-ID <931717A2-0DC6-4CA5-81F5-F9078DC74208__7853.61653329364$1238089003$gmane$org@gmail.com>
Hi,

I have been a user of screen for a while now and just as most of u,  
love it thoroughly.

My company works on doing a lot of migration related work, and we do a  
lot of unix to unix migrations.

When hit with problems on the destination platform, typically we debug  
the application simultaneously on the source and destination  
platforms, trying to find out the point at which the application  
starts taking a different turn.

We normally use gdb for debugging and we typically use screen and have  
two windows with debugging sessions running on each of them (one  
connected to the source platform, one connected to the destination  
platform). And we keep switching between the two windows to find out  
the point of divergence.

We waste a lot of time switching between the two windows and repeating  
the same debugger commands (say next, step, cont, ...) on both the  
windows.

Here is where I wanted to see if I could improve things. What if the  
two screen windows ran on a 'shared keyboard' session. Ie irrespective  
of which window I am, the key strokes typed on that window should be  
made visible to all its 'shared' sessions. So basically if I type  
'next' on one debugger session, the same command should be made  
available to the other window too.

And ideally what I wanted was to a setup like this -

Screen Session -

Window A (shared) - Gdb on machine x
Window B (shared) - Gdb on machine y
Window C  - A non-shared copy of what is running in Window A
Window D - A non-shared copy of what is running on Window B

This way whenever I want to enter a common command, I will goto window  
A or window B and what I type there should be passed onto all other  
shared windows too.  And since C and D are copies of A and B,  the  
display terminal changes should be reflected there too.

Whenever I want to enter a command specific to a particular session, I  
will goto window C or window D, and nothing is passed onto others. But  
the terminal changes should get reflected on A or B (depending on  
whether C or D got updated).

Is there such an option already available under screen ?

If not, I would certainly be interested to work on this. But I am a  
complete novice on screen development and its source base. Any  
pointers on where I should start to understand screen and its source  
base and also pointers for this particular enhancement would be really  
great.

Thanks,
:-)

-
The problem with winning the rat race is that, even if u win, u r  
still a rat

Kumar Rangarajan
S7 Software Solutions
"Where Migration Meets Innovation"