Eclipse
From GnuCash
Eclipse CDT can be used as a multi-feature editor and debugger for gnucash. Eclipse is a Java IDE but has a C/C++ project which has become quite mature. See www.eclipse.org/cdt/
Getting eclipse to work with gnucash
Precondition: Check out the sources. It might be best to make sure first that gnucash compiles and installs, before starting over with eclipse.
- Download Eclipse IDE for C/C++ Developers from [1] and extract to some folder
- Start eclipse
- Create a new C-Project: File->New -> Empty C-Project:
- Location: enter the path to the existing source folder (e.g. C:\soft\gnucash\repos)
- deselect "Show project types and toolsets only if they are supported by the platform"
- Select Toolchain: "MinGW GCC"
- Import include files: This is somehow ugly because you must set each directory you require.
- To browse the .h-includefiles you must enter each folder to the include path:
- Project ->Properties -> C/C++ Build -> Tab "Tool Settings" -> Directories: add the relevant include paths: e.g. "${workspace_loc:/gnucash/lib/libqof/backend}", ${workspace_loc:/gnucash/src/app-utils} etc. and C:\soft\gnome\include\gtk-2.0 and so on
- See also http://wiki.eclipse.org/CDT/User/FAQ#How_do_I_add_an_external_library_to_my_C.2B.2B_project.3F
- To browse the .h-includefiles you must enter each folder to the include path:
There is much more support available:
- Plugin for Subversion integration (subclipse). This is very helpful, because differences are highlighted in the editor. (Install Subclipse and also the Client Adapter for JavaHL. Then open the context menu on the project and select Team->Share Project)
- Scheme editor plugin: schemeway (You will also have to install "Eclipse Java development tools" and "Eclipse plug-in development environment" via Help->Software Updates->Available Software->Ganymede.)
Edit
Some useful hints for editing:
- CTRL+Shift+T: Open Element (function, variable, Macro etc)
- CTRL+Shift+R: Open file
- F3: open the definition of an element
- CTRL+Alt+h: open call hierarchy
... and much more...
Build (not to build)
Eclipse won’t be a good help for building. You are always faster if you make_install in a shell window for the directory tree you were editing. To avoid annoying warnings, you should turn off automatic build:
- Project -> Build automatically
- Preferences->Run/Debug->Launching->"build (if required) before launching".
Debug
You can use eclipse as a debugging interface. The idea is to attach eclipse to the running gnucash process.
- Run->Open Debug Dialog ->"C/C++ Attach to local app" -> New
- Select C:\soft\gnucash\inst\bin\gnucash-bin.exe
- You must specify the path to your source folder: Path mapping "../../../repos" to "C:\soft\gnucash\repos"
- Now start gnucash as usual from inst/bin (ignore warnings about errors in workspace)
- Launch your debugging configuration in eclipse
- Select the process to attach to (gnucash-bin.exe)
- The process will be interrupted. Try if you can browse to gnc_ui_start_event_loop. If not start over with the Source tab (see step 3).
- Make sure you have put some breakpoints in and hit Continue
- If a breakpoint is encountered you can step through with F6, F5 etc., inspect variables and so on.