From 35b59fe44610bebcacd53de843520ec13aad21f9 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Wed, 23 Feb 2011 02:04:56 +0000 Subject: [PATCH] Bug 337927: Invalid assert when fetching process information --- .../src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java | 6 +++--- .../org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java index 108ac65deb6..ba9b59e160e 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java @@ -172,14 +172,14 @@ public class GDBProcesses extends MIProcesses implements IGDBProcesses { } } if (name == null) { - // Should not happen. + // This could happen if a process has terminated but the + // debug session is not terminated because the preference + // to keep GDB running has been selected. name = "Unknown name"; //$NON-NLS-1$ // Until bug 305385 is fixed, the above code will not work, so we assume we // are looking for our own process -// assert false : "Don't have entry for process ID: " + pid; //$NON-NLS-1$ name = fBackend.getProgramPath().lastSegment(); - } rm.setData(new MIThreadDMData(name, pidStr)); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java index dd9d696fd5d..c8cc9aaaccb 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java @@ -654,9 +654,12 @@ public class GDBProcesses_7_0 extends AbstractDsfService } else { name = fDebuggedProcessesAndNames.get(id); if (name == null) { - // We don't have the name in our map. Should not happen. + // We don't have the name in our map. This could happen + // if a process has terminated but the + // debug session is not terminated because the preference + // to keep GDB running has been selected or because there + // are other processes part of that session. name = "Unknown name"; //$NON-NLS-1$ - assert false : "Don't have entry for process ID: " + id; //$NON-NLS-1$ } else if (name.length() == 0) { // Probably will not happen, but just in case...use the // binary file name (absolute path)