Eclipse – “Error creating session” when attempting to debug application with Eclipse/CDT & gdb

debuggingeclipseeclipse-cdtgdb

I'm receiving a rather cryptic error when attempting to debug a simple C++ application.

Message: "Error creating session"

Stacktrace:

org.eclipse.cdt.debug.mi.core.MIException: Process Terminated
    at org.eclipse.cdt.debug.mi.core.MISession.setup(MISession.java:232)
    at org.eclipse.cdt.debug.mi.core.MISession.<init>(MISession.java:204)
    at org.eclipse.cdt.debug.mi.core.MIPlugin.createMISession0(MIPlugin.java:135)
    at org.eclipse.cdt.debug.mi.core.MIPlugin.createSession(MIPlugin.java:464)
    at org.eclipse.cdt.debug.mi.core.AbstractGDBCDIDebugger.createGDBSession(AbstractGDBCDIDebugger.java:114)
    at org.eclipse.cdt.debug.mi.core.AbstractGDBCDIDebugger.createSession(AbstractGDBCDIDebugger.java:68)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchDebugSession(LocalCDILaunchDelegate.java:343)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.createCDISession(LocalCDILaunchDelegate.java:468)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchLocalDebugSession(LocalCDILaunchDelegate.java:145)
    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:853)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:866)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1069)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

OS: Ubuntu 32 9.04

gdb: GNU gdb 6.8-debian

eclipse: 20090619-0625

gdb is in my path and is executable from the terminal.

I've also tried using both the 'elf' and 'GNU' binary parsers to no avail.

Any ideas anyone?

ashley

Best Answer

Not much ideas, except looking at the source code of MSISession:

        // The Process may have terminated earlier because
        // of bad arguments etc .. check this here and bail out.
        try {
            process.exitValue();
            InputStream err = process.getErrorStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(err));
            String line = null;
            try {
                line = reader.readLine();
                reader.close();
            } catch (Exception e) {
                // the reader may throw a NPE.
            }
            if (line == null) {
                line = MIPlugin.getResourceString("src.MISession.Process_Terminated"); //$NON-NLS-1$
            }
            throw new MIException(line);
        }

Meaning that somehow, when you are at this stage, the Process has already produced some errors, probably due to bad arguments.

Related Topic