On Mon, May 24, 2010 at 8:22 AM, Thomas Johnsson <tho...@skri.net> wrote: > This is a question about the way forward, and a request for advice > regarding > remote debugging between window and linux. > > For ourselves internally, and for our customers, we are using > eclipse+pydev+pydevcarm as the Python IDE of choice. Pydevcarm is a > local plugin on top of pydev. So far both eclipse and the application > where the python code is run and debugged, is on linux, sometimes on > on different host machine but with a shared file system. This setup > work well. > > I'm now trying get the grips of a deployment alternative where eclipse > is running on local *windows* workstations, and the remote application > runs on a linux server. eclipse is locally installed on the window > machines, and on the linux server there is one centrally installed > eclipse for this purpose. I presume that the only used bits from the linux > installation is the python files in > plugins/org.python.pydev.debug_1.5.x.xxx/pysrc . SMB/Samba is used > for shared file system. > > Obviously the paths for both the project source files and the libs differ. > > There appears to be two different mechanisms in place for dealing with > the necessary path translation. > > Approach number one is mentioned in > http://pydev.org/manual_adv_remote_debugger.html, note 3. > There is basic machinery in pydevd_file_utils for doing the path > translation. > The variable PATHS_FROM_ECLIPSE_TO_PYTHON needs to be edited, to eg > > PATHS_FROM_ECLIPSE_TO_PYTHON = > [ ("\\\\wake","/users") > ,("C:\Python24\Lib", "/usr/lib64/python2.4")] > > Although this machinery seems to work well the little I've tested, it > is not an option for individual users to edit the globally installed > pydevd*.py. Even if all windows eclipses are installed in the same > way so that the above would work for all, it interfers with > linux<->linux remote debugging. What might work is to have an version > of pydevd_file_utils in the python path of the application, which sets > the value of PATHS_FROM_ECLIPSE_TO_PYTHON depending on who wants to > debug python code in the application. > > In approach number two the eclipse user sets the translation paths in > prefereces->pydev->debug->source locator. Apparently when the debugger > encounters a path that is not matched, it asks for more pairs to enter > this table. But when I tried it it asked for paths that should have > matched. > > There is a similar path translation problem for run in application and > (re)load in application, but that ie easier to deal with since one can > send e.g project relative paths, rather that absolute paths. > > So what are the intentions with these two, mutually exclusive, > approaches to the path translation? Is the first one now obsolete and > the second one the way to go? What is your recommendation on how to > deal with this? Is there any ongoing development in pydev in this > area?
Hi Thomas, The current way of doing it would be through pydevd_file_utils.py. The source locator only acts at the client when some file is not found, so, adding breakpoints wouldn't work (although it'd be enough if you just want a breakpoint added programatically through pydevd.settrace()). Also, you don't really need an eclipse installation, only the files from plugins/org.python.pydev.debug_1.5.x.xxx/pysrc... can't you have those for each user? If so, it'd be just a matter of changing the sys.path with the appropriate path when someone wants to debug. Note that it could be possible to add an interface to specify the PATHS_FROM_ECLIPSE_TO_PYTHON in eclipse. It wasn't done because it may be hard to get it right, so users can edit the pydevd_file_utils.py to get more info on the translation and see what's going on -- and because it's more work ;-) Cheers, Fabio ------------------------------------------------------------------------------ _______________________________________________ Pydev-users mailing list Pydev-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pydev-users