diff options
author | Marc-Andre Laperle | 2017-02-26 03:58:37 +0000 |
---|---|---|
committer | Marc-Andre Laperle | 2017-02-26 03:59:25 +0000 |
commit | fd8765e352bb7e7b94b32d97d80d1ad8deacd094 (patch) | |
tree | 618d5a8fed98af3cfd8dd448b6362391fe5827a5 /llvm | |
parent | 4ba2e8a64b89e38bfa31b5852411eb317334c252 (diff) | |
download | org.eclipse.cdt-fd8765e352bb7e7b94b32d97d80d1ad8deacd094.tar.gz org.eclipse.cdt-fd8765e352bb7e7b94b32d97d80d1ad8deacd094.tar.xz org.eclipse.cdt-fd8765e352bb7e7b94b32d97d80d1ad8deacd094.zip |
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>
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/org.eclipse.cdt.llvm.dsf.lldb.core/src/org/eclipse/cdt/llvm/dsf/lldb/core/internal/service/LLDBProcesses.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/org.eclipse.cdt.llvm.dsf.lldb.core/src/org/eclipse/cdt/llvm/dsf/lldb/core/internal/service/LLDBProcesses.java b/llvm/org.eclipse.cdt.llvm.dsf.lldb.core/src/org/eclipse/cdt/llvm/dsf/lldb/core/internal/service/LLDBProcesses.java index 133148f3081..97ccb1869d4 100644 --- a/llvm/org.eclipse.cdt.llvm.dsf.lldb.core/src/org/eclipse/cdt/llvm/dsf/lldb/core/internal/service/LLDBProcesses.java +++ b/llvm/org.eclipse.cdt.llvm.dsf.lldb.core/src/org/eclipse/cdt/llvm/dsf/lldb/core/internal/service/LLDBProcesses.java @@ -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); + } } |