Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Raw Sockets vs. What?

Reply
Thread Tools

Raw Sockets vs. What?

 
 
Matt
Guest
Posts: n/a
 
      12-11-2004
Hi,

I'm new to Python (1 week), but I'm writing an out-of-process debugger
for a Python ide. I tried execFile first, but stuff leaked over from
the wx libraries we are using. And, anyway, the next code set is PHP so
this has to be tackled anyway.

So, the question: How to communicate between two instances of the
python interpreter? Specifically, I need to pass the api and objects
from bdb, the base class for the debugger. One interpreter runs the
ide, the other the debugger and client code. We were talking and just
opening a socket and doing the rest from there came up. This, to me,
(admitedly a java guy) seems like a lot of work. If it were just
setting breakppoints and stepping, well ok. But I also want to have
introspection on the debugger side objects.

I could use raw sockets and write a bunch of stuff.

Does anyone have a suggestion about some pythonesque way to tackle
this?

Many thanks in advance,
Matt

 
Reply With Quote
 
 
 
 
Diez B. Roggisch
Guest
Posts: n/a
 
      12-11-2004

> So, the question: How to communicate between two instances of the
> python interpreter? Specifically, I need to pass the api and objects
> from bdb, the base class for the debugger. One interpreter runs the
> ide, the other the debugger and client code. We were talking and just
> opening a socket and doing the rest from there came up. This, to me,
> (admitedly a java guy) seems like a lot of work. If it were just
> setting breakppoints and stepping, well ok. But I also want to have
> introspection on the debugger side objects.
>
> I could use raw sockets and write a bunch of stuff.
>
> Does anyone have a suggestion about some pythonesque way to tackle
> this?


I've found pyro useful for a similar task: I fork, create a pipe and in the
child I create a pyro daemon to run a remote object. The uri of that then
is passed using the pipe, so that the parent can get a reference to the
remote object.

I do the whole exercise due to not killable threads in python - so that I
can terminate the subprocess.

The nice thing about pyro is that it is like corba without the declartive
stuff - just use it.

You also migh check out the eric ide - it has an out-of-process debugger, so
Detlev must have found a solution
--
Regards,

Diez B. Roggisch
 
Reply With Quote
 
 
 
 
Fredrik Lundh
Guest
Posts: n/a
 
      12-11-2004
"Matt" wrote:

> So, the question: How to communicate between two instances of the
> python interpreter? Specifically, I need to pass the api and objects
> from bdb, the base class for the debugger. One interpreter runs the
> ide, the other the debugger and client code. We were talking and just
> opening a socket and doing the rest from there came up. This, to me,
> (admitedly a java guy) seems like a lot of work. If it were just
> setting breakppoints and stepping, well ok. But I also want to have
> introspection on the debugger side objects.
>
> I could use raw sockets and write a bunch of stuff.
>
> Does anyone have a suggestion about some pythonesque way to tackle
> this?


let the debugger listen to a randomly chosen local port, let the client wrapper
connect back to the debugger via that port, and use a suitable marshalling layer
to wrap commands and data for the introspection part. This has been done many
times by many IDE developers (including yours truly). Designing the "RPC API"
is the only tricky part here, and it doesn't have to be that tricky (some people
are known to use really simply stuff, such as XML-RPC, for this purpose).

Unless I'm completely mistaken, recent versions of IDLE have a remote debugger
designed and implemented by GvR himself. Maybe you could use that code right
out of the box?

</F>



 
Reply With Quote
 
Matt
Guest
Posts: n/a
 
      12-12-2004
Thanks for the responses--they were very helpful. I've looked at IDLE
and pyro and I think I'll try using pyro for this first version.

--Matt

 
Reply With Quote
 
Matt
Guest
Posts: n/a
 
      01-08-2005
Just thought I'd follow up to say that I'm using XML-RPC after all. Not
that I was intimidated when I finally learned that Fredrik had written
the thing. No, it was more the issue that we want to write a php
debugger next and XML-RPC plays well with php, too.
Thanks again,
--Matt

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Sniffer with RAW SOCKETS billiejoex Python 1 09-07-2005 06:15 PM
raw sockets please ionel Python 1 04-05-2005 01:13 PM
raw sockets ? i need a python sniffer ionel Python 1 01-10-2005 08:36 AM
IPv6 header on raw sockets? Lars Strand Python 0 02-19-2004 01:59 PM
RAW Sockets on Windows XP Guillaume Kaddouch C++ 1 12-27-2003 06:04 AM



Advertisments