Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlain Magloire2004-06-25 01:02:33 +0000
committerAlain Magloire2004-06-25 01:02:33 +0000
commit315a4fc29310ee5b8b843bcaa9f1790008d29c97 (patch)
tree92562cafe2a384416b17cf7ba1fbb99f4b748a4a
parent0396ced3b7e9dad8d86549adbefef557d8de08f3 (diff)
downloadorg.eclipse.cdt-315a4fc29310ee5b8b843bcaa9f1790008d29c97.tar.gz
org.eclipse.cdt-315a4fc29310ee5b8b843bcaa9f1790008d29c97.tar.xz
org.eclipse.cdt-315a4fc29310ee5b8b843bcaa9f1790008d29c97.zip
Fix for 68226
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/ChangeLog7
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java3
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java28
-rw-r--r--debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/SourceManager.java8
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);
}

Back to the top