[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.tools.cdt] Remote C/C++ Development with Galileo?

I think I have a fairly standard case for Remote C/C++ Development: The C/C++ programs reside on a Linux server and I want to edit/run/debug them using Eclipse CDT which runs on a Windows client.

I had tried to make this scenario working around half a year ago based on Ganymede with various combinations for remote development/debugging (CDT + PTP/RDT, using a shared filesystem via NFS and using ssh for build/debug, using DSDP/TM/RSE and the C/C++ Remote Application launcher, using a cross debugger for Linux on Windows etc.). At that time I had read FAQs and documentation that I could find about CDT, PTP, and DSDP/TM/RSE, DSDP/DD. Unfortunately I did not succeed in setting up a satisfying solution (and reading this news group I get the feeling I'm not the only one). The best I could get was using a shared filesystem via NFS, building/debugging via ssh and using a cross-compiled gdb for Linux on Windows. However, in this case all Linux shared libraries used by the remote application needed to be visible on the Windows host as well, since CDT accessed/parsed them via accessing the local file system. This turned out to be impractical in large development projects with many users.

So when I saw that Galileo is out with the new CDT 6.0 and apparently much improved remote development capabilities I gave it a new try - unfortunately without a lot of success. Here is what I tried:

Step 1: Installation

- Installed Galileo (3.5.0), package "Eclipse for C/C++ Developers" (includes CDT 6.0)
- Installed Remote System Explorer (RSE) 3.1 from the Target Management (TM) 3.1 update site (http://download.eclipse.org/dsdp/tm/updates/3.1)
- Installed the "Eclipse C/C++ Remote Launch" feature from the CDT Galileo update site (http://download.eclipse.org/tools/cdt/releases/galileo)


Step 2: Create a remote "C/C++ Project" and edit/work with files

Using the tutorials and docs I got as far as creating a new "C/C++ Project" on the remote host via using the RSE filesystem (via an SSH connection). This also allowed editing the remote source files using the Eclipse CDT running locally. However, the "New Class" wizard failed with an NPE. I first thought this was due to Subclipse as the NPE occured somwhere in Subclipse, but after I uninstalled Subclipse another NPE occured. So working with remote CDT projects still seems to be a bit rough at the edges.

Step 3: Build on the remote host

Anyway, the next step was to build the remote project which immediately failed with the following error message:
"(Cannot run program "make": The directory name is invalid.)".
It seems that CDT's "Makefile Project" does not know that the project actually is on a remote host (although it was created like this). I could not get this to work, even with any kind of custom make command (via ssh, using Windows and/or Linux paths etc.). Probably there is a confusion between the local and remote file systems when executing the build command.


Step 3b: Build on the remote host using PTP/RDT

A bit of research led me to PTP/RDT which provides a "Remote Makefile Project" wizard which seemed the right thing to solve my problem. So I
- Installed the "Remote Development Tools" (RDT) from the "Parallel Tools Platform" (PTP) update site (http://download.eclipse.org/tools/ptp/releases/2.1)
- Installed and started the rdt-server (DStore) on the Linux box
- Created a new connection using RSE which makes use of the RDT server and all the settings for remote build and indexing as described in http://www.eclipse.org/ptp/documentation/2.1/org.eclipse.ptp.rdt.doc.user/html/gettingstarted/creating_a_remote_project.html.


Now the build worked (using the "Remote Makefile Project"). The only drawback was that the editing of files was now considerably slower than via the SSH connection I used initially. [BTW, the creation of new classes still failed with NPE as above.]

Step 4: Run/debug on the remote host

The build had worked which I verified by using a stand-alone SSH connection and running my simple "Hello World" type program manually, so the next thing to try was to run/debug my program on the remote host via CDT, using the "C/C++ Remote Application" run/debug configuration. The dialogue seems much improved compared to Ganymede. However, I was not able to select the "C/C++ Application" to run/debug: The "Search Project" dialogue did not recognize the Linux ELF binary (although all binary parsers were correctly set), and the "Browse" dialogue searches the local file system (strange for a remote launcher). See also http://www.eclipse.org/newsportal/article.php?id=18607&group=eclipse.tools.cdt#18607, which describes the same problem before the Galileo release. Due to this problem the main "Run" (or "Debug") button stayed inactive and the program could not be launched from CDT. [BTW, the binary parsing process seems to have a general problem as also in the Project Explorer the binary executable is not detected as such (just as a general binary file).]

So again I'm stuck here and any help would be greatly appreciated. My main questions are:

1. Are any of the problems that I described above known to the CDT/DSDP/PTP teams or have they been filed as bugs? (I searched Bugzilla but could not find any of them, including the last one which apparently was meant to be filed and fixed for Galileo)

2. Is there anything wrong with the installation steps I made (see above)?

3. Is the upcoming PTP 3.0 / Galileo SR1 (planned for Sept 2009) going to improve the situation?