- fix: debugger won't exit when the program has exited.

- adjust: the max value of the debug console's vertical scrollbar.
This commit is contained in:
royqh1979@gmail.com 2021-10-13 12:55:41 +08:00
parent 59390203e3
commit a1e5ce379e
7 changed files with 110 additions and 81 deletions

View File

@ -1,3 +1,7 @@
Version 0.6.7
- fix: debugger won't exit when the program has exited.
- adjust: the max value of the debug console's vertical scrollbar.
Version 0.6.6
- fix: crash when create new file
- implement: two editor view

Binary file not shown.

View File

@ -921,10 +921,10 @@ Are you really want to continue?</source>
<location filename="editor.cpp" line="213"/>
<location filename="editor.cpp" line="227"/>
<location filename="editor.cpp" line="298"/>
<location filename="editor.cpp" line="1103"/>
<location filename="editor.cpp" line="1108"/>
<location filename="editor.cpp" line="1126"/>
<location filename="editor.cpp" line="1131"/>
<location filename="editor.cpp" line="1125"/>
<location filename="editor.cpp" line="1130"/>
<location filename="editor.cpp" line="1148"/>
<location filename="editor.cpp" line="1153"/>
<source>Error</source>
<translation></translation>
</message>
@ -939,55 +939,55 @@ Are you really want to continue?</source>
<translation></translation>
</message>
<message>
<location filename="editor.cpp" line="1104"/>
<location filename="editor.cpp" line="1126"/>
<source>The text to be copied exceeds count limit!</source>
<translation></translation>
</message>
<message>
<location filename="editor.cpp" line="1109"/>
<location filename="editor.cpp" line="1131"/>
<source>The text to be copied exceeds character limit!</source>
<translation></translation>
</message>
<message>
<location filename="editor.cpp" line="1127"/>
<location filename="editor.cpp" line="1149"/>
<source>The text to be cut exceeds count limit!</source>
<translation></translation>
</message>
<message>
<location filename="editor.cpp" line="1132"/>
<location filename="editor.cpp" line="1154"/>
<source>The text to be cut exceeds character limit!</source>
<translation></translation>
</message>
<message>
<location filename="editor.cpp" line="2100"/>
<location filename="editor.cpp" line="2122"/>
<source>Print Document</source>
<translation></translation>
</message>
<message>
<location filename="editor.cpp" line="2647"/>
<location filename="editor.cpp" line="2684"/>
<location filename="editor.cpp" line="2735"/>
<location filename="editor.cpp" line="2669"/>
<location filename="editor.cpp" line="2706"/>
<location filename="editor.cpp" line="2757"/>
<source>Ctrl+click for more info</source>
<translation>Ctrl+</translation>
</message>
<message>
<location filename="editor.cpp" line="3080"/>
<location filename="editor.cpp" line="3110"/>
<location filename="editor.cpp" line="3102"/>
<location filename="editor.cpp" line="3132"/>
<source>Symbol &apos;%1&apos; not found!</source>
<translation>&apos;%1&apos;!</translation>
</message>
<message>
<location filename="editor.cpp" line="3499"/>
<location filename="editor.cpp" line="3521"/>
<source>Break point condition</source>
<translation></translation>
</message>
<message>
<location filename="editor.cpp" line="3500"/>
<location filename="editor.cpp" line="3522"/>
<source>Enter the condition of the breakpoint:</source>
<translation>:</translation>
</message>
<message>
<location filename="editor.cpp" line="3676"/>
<location filename="editor.cpp" line="3698"/>
<source>Readonly</source>
<translation></translation>
</message>
@ -2686,7 +2686,7 @@ Are you really want to continue?</source>
</message>
<message>
<location filename="mainwindow.ui" line="295"/>
<location filename="mainwindow.cpp" line="2754"/>
<location filename="mainwindow.cpp" line="2777"/>
<source>Issues</source>
<translation></translation>
</message>
@ -2889,8 +2889,8 @@ Are you really want to continue?</source>
<location filename="mainwindow.ui" line="1165"/>
<location filename="mainwindow.cpp" line="1174"/>
<location filename="mainwindow.cpp" line="1185"/>
<location filename="mainwindow.cpp" line="2456"/>
<location filename="mainwindow.cpp" line="2467"/>
<location filename="mainwindow.cpp" line="2473"/>
<location filename="mainwindow.cpp" line="2484"/>
<source>Compile</source>
<translation></translation>
</message>
@ -3334,7 +3334,7 @@ Are you really want to continue?</source>
</message>
<message>
<location filename="mainwindow.ui" line="1656"/>
<location filename="mainwindow.cpp" line="3563"/>
<location filename="mainwindow.cpp" line="3591"/>
<source>Clear all breakpoints</source>
<translation></translation>
</message>
@ -3435,7 +3435,7 @@ Are you really want to continue?</source>
</message>
<message>
<location filename="mainwindow.ui" line="1807"/>
<location filename="mainwindow.cpp" line="4077"/>
<location filename="mainwindow.cpp" line="4105"/>
<source>Rename Symbol</source>
<translation></translation>
</message>
@ -3456,16 +3456,26 @@ Are you really want to continue?</source>
</message>
<message>
<location filename="mainwindow.ui" line="1827"/>
<location filename="mainwindow.cpp" line="4181"/>
<location filename="mainwindow.cpp" line="4209"/>
<source>Export As RTF</source>
<translation>RTF</translation>
</message>
<message>
<location filename="mainwindow.ui" line="1832"/>
<location filename="mainwindow.cpp" line="4203"/>
<location filename="mainwindow.cpp" line="4231"/>
<source>Export As HTML</source>
<translation>HTML</translation>
</message>
<message>
<location filename="mainwindow.ui" line="1837"/>
<source>Move To Other View</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="1840"/>
<source>Ctrl+M</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1972"/>
<source>File Encoding</source>
@ -3782,118 +3792,118 @@ Are you really want to continue?</source>
<translation>%1</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2376"/>
<location filename="mainwindow.cpp" line="2393"/>
<source>Save project</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2377"/>
<location filename="mainwindow.cpp" line="2394"/>
<source>The project &apos;%1&apos; has modifications.</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2379"/>
<location filename="mainwindow.cpp" line="2396"/>
<source>Do you want to save it?</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3564"/>
<location filename="mainwindow.cpp" line="3592"/>
<source>Do you really want to clear all breakpoints in this file?</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3742"/>
<location filename="mainwindow.cpp" line="3770"/>
<source>New project</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3743"/>
<location filename="mainwindow.cpp" line="3771"/>
<source>Close %1 and start new project?</source>
<translation>&apos;%1&apos;?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3755"/>
<location filename="mainwindow.cpp" line="3783"/>
<source>Folder not exist</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3756"/>
<location filename="mainwindow.cpp" line="3784"/>
<source>Folder &apos;%1&apos; doesn&apos;t exist. Create it now?</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3763"/>
<location filename="mainwindow.cpp" line="3791"/>
<source>Can&apos;t create folder</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3764"/>
<location filename="mainwindow.cpp" line="3792"/>
<source>Failed to create folder &apos;%1&apos;.</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3779"/>
<location filename="mainwindow.cpp" line="3807"/>
<source>Save new project as</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3781"/>
<location filename="mainwindow.cpp" line="3809"/>
<source>Red panda Dev-C++ project file (*.dev)</source>
<translation>Dev-C++ (*.dev)</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3792"/>
<location filename="mainwindow.cpp" line="3820"/>
<source>New project fail</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3793"/>
<location filename="mainwindow.cpp" line="3821"/>
<source>Can&apos;t assign project template</source>
<translation>使</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3850"/>
<location filename="mainwindow.cpp" line="3878"/>
<source>Add to project</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4063"/>
<location filename="mainwindow.cpp" line="4091"/>
<source>Rename Error</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4064"/>
<location filename="mainwindow.cpp" line="4092"/>
<source>Symbol &apos;%1&apos; is defined in system header.</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4078"/>
<location filename="mainwindow.cpp" line="4106"/>
<source>New Name</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4126"/>
<location filename="mainwindow.cpp" line="4136"/>
<location filename="mainwindow.cpp" line="4154"/>
<location filename="mainwindow.cpp" line="4164"/>
<source>Replace Error</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4127"/>
<location filename="mainwindow.cpp" line="4155"/>
<source>Can&apos;t open file &apos;%1&apos; for replace!</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4137"/>
<location filename="mainwindow.cpp" line="4165"/>
<source>Contents has changed since last search!</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4183"/>
<location filename="mainwindow.cpp" line="4211"/>
<source>Rich Text Format Files (*.rtf)</source>
<translation>RTF格式文件 (*.rtf)</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="4205"/>
<location filename="mainwindow.cpp" line="4233"/>
<source>HTML Files (*.html)</source>
<translation>HTML文件 (*.html)</translation>
</message>
@ -3901,12 +3911,12 @@ Are you really want to continue?</source>
<location filename="mainwindow.cpp" line="757"/>
<location filename="mainwindow.cpp" line="1595"/>
<location filename="mainwindow.cpp" line="1963"/>
<location filename="mainwindow.cpp" line="2463"/>
<location filename="mainwindow.cpp" line="2542"/>
<location filename="mainwindow.cpp" line="2649"/>
<location filename="mainwindow.cpp" line="2661"/>
<location filename="mainwindow.cpp" line="2996"/>
<location filename="mainwindow.cpp" line="3008"/>
<location filename="mainwindow.cpp" line="2480"/>
<location filename="mainwindow.cpp" line="2565"/>
<location filename="mainwindow.cpp" line="2672"/>
<location filename="mainwindow.cpp" line="2684"/>
<location filename="mainwindow.cpp" line="3019"/>
<location filename="mainwindow.cpp" line="3031"/>
<source>Error</source>
<translation></translation>
</message>
@ -3916,75 +3926,75 @@ Are you really want to continue?</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2457"/>
<location filename="mainwindow.cpp" line="2474"/>
<source>File &apos;%1&apos; was changed.</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2457"/>
<location filename="mainwindow.cpp" line="2474"/>
<source>Reload its content from disk?</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2468"/>
<location filename="mainwindow.cpp" line="2485"/>
<source>File &apos;%1&apos; was removed.</source>
<translation>&apos;%1&apos;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2468"/>
<location filename="mainwindow.cpp" line="2485"/>
<source>Keep it open?</source>
<translation>C++</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2538"/>
<location filename="mainwindow.cpp" line="2561"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2828"/>
<location filename="mainwindow.cpp" line="2851"/>
<source>Compile Failed</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="2833"/>
<location filename="mainwindow.cpp" line="2856"/>
<source>Run Failed</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3025"/>
<location filename="mainwindow.cpp" line="3039"/>
<location filename="mainwindow.cpp" line="3048"/>
<location filename="mainwindow.cpp" line="3062"/>
<source>Confirm Convertion</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3026"/>
<location filename="mainwindow.cpp" line="3040"/>
<location filename="mainwindow.cpp" line="3049"/>
<location filename="mainwindow.cpp" line="3063"/>
<source>The editing file will be saved using %1 encoding. &lt;br /&gt;This operation can&apos;t be reverted. &lt;br /&gt;Are you sure to continue?</source>
<translation>使%1&lt;br /&gt;&lt;br /&gt;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3206"/>
<location filename="mainwindow.cpp" line="3229"/>
<source>New Watch Expression</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3207"/>
<location filename="mainwindow.cpp" line="3230"/>
<source>Enter Watch Expression (it is recommended to use &apos;this-&gt;&apos; for class members):</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3263"/>
<location filename="mainwindow.cpp" line="3286"/>
<source>Parsing file %1 of %2: &quot;%3&quot;</source>
<translation>%1/%2&quot;%3&quot;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3285"/>
<location filename="mainwindow.cpp" line="3291"/>
<location filename="mainwindow.cpp" line="3308"/>
<location filename="mainwindow.cpp" line="3314"/>
<source>Done parsing %1 files in %2 seconds</source>
<translation>%1,%2</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="3288"/>
<location filename="mainwindow.cpp" line="3311"/>
<source>(%1 files per second)</source>
<translation>(%1</translation>
</message>
@ -4751,12 +4761,12 @@ Are you really want to continue?</source>
<context>
<name>QObject</name>
<message>
<location filename="editorlist.cpp" line="96"/>
<location filename="editorlist.cpp" line="109"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="editorlist.cpp" line="97"/>
<location filename="editorlist.cpp" line="110"/>
<source>Save changes to %1?</source>
<translation>&quot;%1&quot;</translation>
</message>
@ -6058,8 +6068,8 @@ Are you really want to continue?</source>
<context>
<name>SynEdit</name>
<message>
<location filename="qsynedit/TextPainter.cpp" line="907"/>
<location filename="qsynedit/TextPainter.cpp" line="908"/>
<location filename="qsynedit/TextPainter.cpp" line="909"/>
<location filename="qsynedit/TextPainter.cpp" line="910"/>
<source>The highlighter seems to be in an infinite loop</source>
<translation></translation>
</message>

View File

@ -644,10 +644,6 @@ AnnotationType DebugReader::getAnnotation(const QString &s)
return AnnotationType::TPrompt;
} else if (s == "post-prompt") {
AnnotationType result = AnnotationType::TPostPrompt;
int IndexBackup = mIndex;
QString t = getNextFilledLine();
mIndex = IndexBackup;
//hack to catch local
if ((mCurrentCmd) && (mCurrentCmd->command == "info locals")) {
result = AnnotationType::TLocal;
@ -664,6 +660,8 @@ AnnotationType DebugReader::getAnnotation(const QString &s)
result = AnnotationType::TMemory;
}
return result;
} else if (s == "error") {
return AnnotationType::TError;
} else if (s == "error-begin") {
return AnnotationType::TErrorBegin;
} else if (s == "error-end") {
@ -888,6 +886,18 @@ void DebugReader::handleError()
}
}
void DebugReader::handleErrorExit()
{
if ((mCurrentCmd) && (
mCurrentCmd->command == "next"
|| mCurrentCmd->command == "step"
|| mCurrentCmd->command == "finish"
|| mCurrentCmd->command == "continue")) {
handleExit();
}
}
void DebugReader::handleExit()
{
doprocessexited=true;
@ -1190,6 +1200,9 @@ void DebugReader::processDebugOutput()
case AnnotationType::TSignal:
handleSignal();
break;
case AnnotationType::TError:
handleErrorExit();
break;
case AnnotationType::TExit:
handleExit();
break;

View File

@ -26,6 +26,7 @@ enum class AnnotationType {
TFrameSourceFile, TFrameSourceBegin, TFrameSourceLine, TFrameFunctionName, TFrameWhere,
TFrameArgs,
TFrameBegin, TFrameEnd,
TError,
TErrorBegin, TErrorEnd,
TArrayBegin, TArrayEnd,
TElt, TEltRep, TEltRepEnd,
@ -307,6 +308,7 @@ private:
void handleDisassembly();
void handleDisplay();
void handleError();
void handleErrorExit();
void handleExit();
void handleFrames();
void handleLocalOutput();

View File

@ -848,7 +848,7 @@ void Editor::onPreparePaintHighlightToken(int line, int aChar, const QString &to
}
if (!selAvail() && attr->name() == SYNS_AttrSymbol) {
qDebug()<<line<<":"<<aChar<<" - "<<mHighlightCharPos1.Line<<":"<<mHighlightCharPos1.Char<<" - "<<mHighlightCharPos2.Line<<":"<<mHighlightCharPos2.Char;
// qDebug()<<line<<":"<<aChar<<" - "<<mHighlightCharPos1.Line<<":"<<mHighlightCharPos1.Char<<" - "<<mHighlightCharPos2.Line<<":"<<mHighlightCharPos2.Char;
if ( (line == mHighlightCharPos1.Line)
&& (aChar == mHighlightCharPos1.Char)) {

View File

@ -276,7 +276,7 @@ void QConsole::setTopRow(int value)
int QConsole::maxScrollHeight()
{
return std::max(mContents.rows(),1);
return std::max(mContents.rows()-mRowsInWindow,1);
}
void QConsole::updateScrollbars()