diff --git a/src/SeerMainWindow.cpp b/src/SeerMainWindow.cpp index 2d4839b..ec8747b 100644 --- a/src/SeerMainWindow.cpp +++ b/src/SeerMainWindow.cpp @@ -181,6 +181,7 @@ SeerMainWindow::SeerMainWindow(QWidget* parent) : QMainWindow(parent) { QObject::connect(visualizerImageAction, &QAction::triggered, gdbWidget, &SeerGdbWidget::handleGdbImageVisualizer); QObject::connect(gdbWidget->gdbMonitor(), &GdbMonitor::astrixTextOutput, runStatus, &SeerRunStatusIndicator::handleText); + QObject::connect(gdbWidget->gdbMonitor(), &GdbMonitor::equalTextOutput, runStatus, &SeerRunStatusIndicator::handleText); QObject::connect(gdbWidget->gdbMonitor(), &GdbMonitor::astrixTextOutput, this, &SeerMainWindow::handleText); QObject::connect(gdbWidget->gdbMonitor(), &GdbMonitor::caretTextOutput, this, &SeerMainWindow::handleText); QObject::connect(gdbWidget->gdbMonitor(), &GdbMonitor::equalTextOutput, this, &SeerMainWindow::handleText); diff --git a/src/SeerRunStatusIndicator.cpp b/src/SeerRunStatusIndicator.cpp index ca0f9d5..4cc3950 100644 --- a/src/SeerRunStatusIndicator.cpp +++ b/src/SeerRunStatusIndicator.cpp @@ -53,10 +53,18 @@ void SeerRunStatusIndicator::handleText (const QString& text) { }else if (text.startsWith("*stopped")) { + //^connected,frame={level=\"0\",addr=\"0x00007f48351f80c1\",func=\"read\",args=[],from=\"/lib64/libc.so.6\",arch=\"i386:x86-64\"}" setRunStatus(SeerRunStatusIndicator::Stopped); - //^connected,frame={level=\"0\",addr=\"0x00007f48351f80c1\",func=\"read\",args=[],from=\"/lib64/libc.so.6\",arch=\"i386:x86-64\"}" - return; + }else if (text.startsWith("=thread-exited")) { + + //=thread-exited,id="1",group-id="i1" + setRunStatus(SeerRunStatusIndicator::Stopped); + + }else if (text.startsWith("=thread-group-exited")) { + + //=thread-group-exited,id="i1" + setRunStatus(SeerRunStatusIndicator::Stopped); }else{ // All other text is ignored by this widget. diff --git a/src/resource.qrc b/src/resource.qrc index 530a50a..fc0c978 100644 --- a/src/resource.qrc +++ b/src/resource.qrc @@ -81,6 +81,7 @@ resources/help/Skips.md resources/mi-python/MIEcho.py resources/mi-python/MISkip.py + resources/mi-python/MIKill.py diff --git a/tests/hellofft/README b/tests/hellofft/README new file mode 100644 index 0000000..20677db --- /dev/null +++ b/tests/hellofft/README @@ -0,0 +1,34 @@ + +After -exec-kill + + ^done + ^running + *running,thread-id="all" + ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1" + ^done,threads=[{id="1",target-id="Thread 0x7ffff7eb0b80 (LWP 9413)",name="hellofft",state="running",core="6"}],current-thread-id="1" + ^error,msg="Selected thread is running." + =thread-exited,id="1",group-id="i1" + =thread-group-exited,id="i1" + ^done + ^done,thread-ids={},number-of-threads="0" + ^done,threads=[] + ^error,msg="No registers." + +Exiting normally + + =thread-exited,id="1",group-id="i1" + =thread-group-exited,id="i1",exit-code="0" + *stopped,reason="exited-normally" + ^done,thread-ids={},number-of-threads="0" + ^done,threads=[] + ^error,msg="No registers." + ^done,thread-ids={},number-of-threads="0" + ^done,threads=[] + ^done,threads=[] + ^error,msg="No registers." + ^error,msg="No registers." + ^done,thread-ids={},number-of-threads="0" + ^done,threads=[] + ^error,msg="No registers." + ^error,msg="No registers." +