# HG changeset patch # User Egor Ushakov # Date 1233855797 -10800 # Node ID ad3fa0669d20211d7a599c7d4fce85db69fde0cc # Parent 4261df01ab8eaf2c07498ca458ed18ad60d93909 fix2 for IZ:156138(IDE hangs on start debugger) diff -r 4261df01ab8e -r ad3fa0669d20 cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbDebugger.java --- a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbDebugger.java Thu Feb 05 16:42:30 2009 +0300 +++ b/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbDebugger.java Thu Feb 05 20:43:17 2009 +0300 @@ -280,7 +280,9 @@ String cspath = getCompilerSetPath(pae); gdb = new GdbProxy(this, gdbCommand, pae.getProfile().getEnvironment().getenv(), runDirectory, termpath, cspath); - gdb.gdb_version(); + // we should not continue until gdb version is initialized + initGdbVersion(); + gdb.environment_directory(runDirectory); gdb.gdb_show("language"); // NOI18N gdb.gdb_set("print repeat", // NOI18N @@ -464,6 +466,22 @@ finish(false); } }); + } + } + + private final void initGdbVersion() { + String message = gdb.gdb_version().getResponse(); + + if (startupTimer != null) { + // Cancel the startup timer - we've got our first response from gdb + startupTimer.cancel(); + startupTimer = null; + } + + gdbVersion = parseGdbVersionString(message.substring(8)); + //versionPeculiarity = GdbVersionPeculiarity.create(gdbVersion, platform); + if (message.contains("cygwin")) { // NOI18N + cygwin = true; } } @@ -1178,7 +1196,6 @@ /** Handle gdb responses starting with '~' */ public void consoleStreamOutput(int token, String omsg) { - CommandBuffer cb = gdb.getCommandBuffer(token); String msg; if (omsg.endsWith("\\n")) { // NOI18N @@ -1186,20 +1203,10 @@ } else { msg = omsg; } + + CommandBuffer cb = gdb.getCommandBuffer(token); if (cb != null) { cb.append(omsg); - } else if (msg.startsWith("GNU gdb ")) { // NOI18N - if (startupTimer != null) { - // Cancel the startup timer - we've got our first response from gdb - startupTimer.cancel(); - startupTimer = null; - } - - // Now process the version information - gdbVersion = parseGdbVersionString(msg.substring(8)); - if (msg.contains("cygwin")) { // NOI18N - cygwin = true; - } } else if (msg.toLowerCase().contains("mingw")) { // NOI18N mingw = true; } else if (msg.startsWith("Breakpoint ") && msg.contains(" at 0x")) { // NOI18N