diff options
author | Alain Magloire | 2004-06-25 01:02:33 +0000 |
---|---|---|
committer | Alain Magloire | 2004-06-25 01:02:33 +0000 |
commit | 315a4fc29310ee5b8b843bcaa9f1790008d29c97 (patch) | |
tree | 92562cafe2a384416b17cf7ba1fbb99f4b748a4a | |
parent | 0396ced3b7e9dad8d86549adbefef557d8de08f3 (diff) | |
download | org.eclipse.cdt-315a4fc29310ee5b8b843bcaa9f1790008d29c97.tar.gz org.eclipse.cdt-315a4fc29310ee5b8b843bcaa9f1790008d29c97.tar.xz org.eclipse.cdt-315a4fc29310ee5b8b843bcaa9f1790008d29c97.zip |
Fix for 68226
4 files changed, 33 insertions, 13 deletions
diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index 202ee282d8e..00f094e58ff 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,3 +1,10 @@ +2004-06-24 Alain Magloire + + Fix 68226 + * cdi/org/eclipse/cdt/debug/mic/core/cdi/EventManager.java + * cdi/org/eclipse/cdt/debug/mic/core/cdi/Configuration.java + * cdi/org/eclipse/cdt/debug/mic/core/cdi/SoourceManager.java + 2004-06-22 Alain Magloire Fix PR 68176 diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java index 2214841714d..a819644f198 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java @@ -136,9 +136,8 @@ public class Configuration implements ICDIConfiguration { // FIXME: bug in Solaris gdb when using -tty, sending a control-c // does not work. return false; - } else { - return true; } + return true; } return true; } diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java index 8052b8543ce..3ef900b0e8c 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java @@ -425,6 +425,15 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs if (currentThread instanceof Thread) { tid = ((Thread)currentThread).getId(); } + // Select the old thread now. + if (tid > 0) { + MIThreadSelect selectThread = factory.createMIThreadSelect(tid); + try { + mi.postCommand(selectThread); + } catch (MIException e) { + // ignore + } + } ICDIStackFrame frame = null; try { frame = currentThread.getCurrentStackFrame(); @@ -451,13 +460,6 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs // level of the old stack. The -1 is because gdb level is zero-based miLevel = count - frame.getLevel() - 1; } - if (tid > 0) { - MIThreadSelect selectThread = factory.createMIThreadSelect(tid); - try { - mi.postCommand(selectThread); - } catch (MIException e) { - } - } if (miLevel >= 0) { MIStackSelectFrame selectFrame = factory.createMIStackSelectFrame(miLevel); MIExecFinish finish = factory.createMIExecFinish(); @@ -465,7 +467,19 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs mi.postCommand(selectFrame); mi.postCommand(finish); } catch (MIException e) { + // ignore } + } else { + // if we are still at the same level in the backtrace + // for example the StopEventLib was on a different thread + // redo the last command. + Command cmd = lastUserCommand; + lastUserCommand = null; + try { + mi.postCommand(cmd); + } catch (MIException e) { + // ignore + } } return true; } else if (lastUserCommand != null) { diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java index 317d2911d9d..797d6944d4b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java @@ -305,13 +305,13 @@ public class SourceManager extends Manager implements ICDISourceManager { // GDB has some special types for int if (typename.equals("int8_t")) { //$NON-NLS-1$ return new CharType(target, typename); - } else if (typename.equals("int16_t")) { //$NON-NLS-$1 + } else if (typename.equals("int16_t")) { //$NON-NLS-1$ return new ShortType(target, typename); - } else if (typename.equals("int32_t")) { //$NON-NLS-$1 + } else if (typename.equals("int32_t")) { //$NON-NLS-1$ return new LongType(target, typename); - } else if (typename.equals("int64_t")) { //$NON-NLS-$1 + } else if (typename.equals("int64_t")) { //$NON-NLS-1$ return new IntType(target, typename); - } else if (typename.equals("int128_t")) { //$NON-NLS-$1 + } else if (typename.equals("int128_t")) { //$NON-NLS-1$ return new IntType(target, typename); } |