1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 510832 - [lldb] AssertionError terminating session

LLDB-MI sends an extra event when -gdb-exit is used, which
triggers this assertion:
629,511 [MI]  35-gdb-exit
629,514 [MI]  35^exit
629,514 [MI]  =thread-group-exited,id="i1"

For now, work around LLDB-MI bug, see
http://bugs.llvm.org/show_bug.cgi?id=32053

Change-Id: I1c8e7fee118b5bc31e08272c79aa806fe05b7c95
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
This commit is contained in:
Marc-Andre Laperle 2017-02-25 22:58:37 -05:00
parent 4ba2e8a64b
commit fd8765e352

View file

@ -18,11 +18,14 @@ import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
import org.eclipse.cdt.dsf.datamodel.DMContexts;
import org.eclipse.cdt.dsf.datamodel.IDMContext;
import org.eclipse.cdt.dsf.debug.service.IProcesses;
import org.eclipse.cdt.dsf.debug.service.IRunControl.IExitedDMEvent;
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext;
import org.eclipse.cdt.dsf.gdb.service.GDBProcesses_7_4;
import org.eclipse.cdt.dsf.gdb.service.IGDBBackend;
import org.eclipse.cdt.dsf.gdb.service.SessionType;
import org.eclipse.cdt.dsf.mi.service.IMIContainerDMContext;
import org.eclipse.cdt.dsf.mi.service.IMIProcessDMContext;
import org.eclipse.cdt.dsf.service.DsfServiceEventHandler;
import org.eclipse.cdt.dsf.service.DsfSession;
import org.eclipse.core.runtime.CoreException;
@ -151,4 +154,16 @@ public class LLDBProcesses extends GDBProcesses_7_4 {
return true;
}
}
@DsfServiceEventHandler
public void eventDispatched(IExitedDMEvent e) {
if (e.getDMContext() instanceof IMIContainerDMContext && getNumConnected() == 0) {
// FIXME: Work around bug http://bugs.llvm.org/show_bug.cgi?id=32053
// And also https://bugs.eclipse.org/bugs/show_bug.cgi?id=510832
// LLDB-MI sends an extra "=thread-group-exited" event.
// This override should be completely removed once fixed.
return;
}
super.eventDispatched(e);
}
}