2
votes

I've recently done a fresh install of Ubuntu 11.10, installing the latest version of Eclipse CDT. I'm trying to debug an existing C++ project with makefiles and Eclipse project files generated by CMake. Upon attempting to debug (with all of the correct settings given in the Debug Configuration), the launch fails with error:

An internal error occurred during: "Launching mops-app".
java.lang.NullPointerException

This does not occur when trying to debug a minimal Hello World project. The project could be successfully debugged on Ubuntu 11.04 with the latest version of Eclipse CDT. The java version on my machine is:

java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

And the Eclipse output from trying to launch the debug configuration is:

!ENTRY org.eclipse.core.jobs 4 2 2011-10-31 11:50:24.211
!MESSAGE An internal error occurred during: "Launching mops-app".
!STACK 0
java.lang.NullPointerException
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1837)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1848)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1848)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.setSourceLookupPath(CDebugTarget.java:1815)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initializeSourceLookupPath(CDebugTarget.java:383)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initialize(CDebugTarget.java:282)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.<init>(CDebugTarget.java:275)
    at org.eclipse.cdt.debug.core.CDIDebugModel$1.run(CDIDebugModel.java:100)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
    at org.eclipse.cdt.debug.core.CDIDebugModel.newDebugTarget(CDIDebugModel.java:105)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchLocalDebugSession(LocalCDILaunchDelegate.java:162)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchDebugger(LocalCDILaunchDelegate.java:112)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launch(LocalCDILaunchDelegate.java:72)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
3

3 Answers

2
votes

The issue was associated with upgrading the version of CMake. CMake 2.8.5 generated 'Subproject' entries in the Eclipse .cproject and .project files. For some reason, CMake by default told Eclipse to ignore the Subproject paths, thus confusing Eclipse's indexer when it tried to debug code.

The problem is easily resolved by commenting-out the <linkedResources> entry of the .project file, e.g.

<!--link>
    <name>[Subprojects]/MOPS</name>
    <type>2</type>
    <location>/home/user/mops-c-Git/src/mopsc</location>
</link-->

and commenting-out the Subproject portion <pathentry> entry of the .cproject file, e.g.

<!--pathentry kind="src" path="MOPS"/>
<pathentry excluding="MOPS/|**/CMakeFiles/" kind="out" path=""/-->
1
votes

Make sure to have selected the executable to run in the Run/Run or Run/Debug menu.

1
votes

I had a similar problem (Ubuntu 14.04, SBT 13.1.0) - launching Debugger caused a java.lang.NullPointerException. Checking the log by starting Eclipse with eclipse-nios2 -consoleLog, I had similar entries:

java.lang.NullPointerException
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1843)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1864)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1864)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.setSourceLookupPath(CDebugTarget.java:1817)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initializeSourceLookupPath(CDebugTarget.java:385)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initialize(CDebugTarget.java:286)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.<init>(CDebugTarget.java:279)

I believe the cause is the same; I found another fix and wanted to share it for completeness.

I have linked resources in my project, and the log made me suspect they were the cause. I had linked the resources with Import->General->File system->[... Create links in workspace...].

I removed these links and instead linked to the sources by Project Properties->C/C++ General->Paths and Symbols->[tab] Source Location->Link folder....

This made the Debugger run fine without complaining.