diff --git a/NEWS.md b/NEWS.md
index 0fa9d868..397157af 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -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
diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.qm b/RedPandaIDE/RedPandaIDE_zh_CN.qm
index 1a3708fe..d1bae071 100644
Binary files a/RedPandaIDE/RedPandaIDE_zh_CN.qm and b/RedPandaIDE/RedPandaIDE_zh_CN.qm differ
diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.ts b/RedPandaIDE/RedPandaIDE_zh_CN.ts
index 9bd17145..6890f7eb 100644
--- a/RedPandaIDE/RedPandaIDE_zh_CN.ts
+++ b/RedPandaIDE/RedPandaIDE_zh_CN.ts
@@ -921,10 +921,10 @@ Are you really want to continue?
-
-
-
-
+
+
+
+
错误
@@ -939,55 +939,55 @@ Are you really want to continue?
另存为
-
+
要复制的内容超过了行数限制!
-
+
要复制的内容超过了字符数限制!
-
+
要剪切的内容超过了行数限制!
-
+
要剪切的内容超过了字符数限制!
-
+
打印文档
-
-
-
+
+
+
Ctrl+单击以获取更多信息
-
-
+
+
未找到符号'%1'!
-
+
断点条件
-
+
输入当前断点的生效条件:
-
+
只读
@@ -2686,7 +2686,7 @@ Are you really want to continue?
-
+
编译器
@@ -2889,8 +2889,8 @@ Are you really want to continue?
-
-
+
+
编译
@@ -3334,7 +3334,7 @@ Are you really want to continue?
-
+
删除所有断点
@@ -3435,7 +3435,7 @@ Are you really want to continue?
-
+
重命名符号
@@ -3456,16 +3456,26 @@ Are you really want to continue?
-
+
导出为RTF
-
+
导出为HTML
+
+
+
+ 移动到其他视图
+
+
+
+
+
+
@@ -3782,118 +3792,118 @@ Are you really want to continue?
已自动保存%1个文件
-
+
保存项目
-
+
项目'%1'有改动。
-
+
需要保存吗?
-
+
您真的要清除该文件的所有断点吗?
-
+
新建项目
-
+
关闭'%1'以打开新项目?
-
+
文件夹不存在
-
+
文件夹'%1'不存在。是否创建?
-
+
无法创建文件夹
-
+
创建文件夹'%1'失败。
-
+
-
+
小熊猫Dev-C++项目文件 (*.dev)
-
+
新建项目失败
-
+
无法使用模板创建项目
-
+
添加到项目
-
+
重命名出错
-
+
符号'%1'在系统头文件中定义,无法修改。
-
+
新名称
-
-
+
+
替换出错
-
+
无法打开文件'%1'进行替换!
-
+
内容和上次查找时不一致。
-
+
RTF格式文件 (*.rtf)
-
+
HTML文件 (*.html)
@@ -3901,12 +3911,12 @@ Are you really want to continue?
-
-
-
-
-
-
+
+
+
+
+
+
错误
@@ -3916,75 +3926,75 @@ Are you really want to continue?
项目历史
-
+
磁盘文件'%1'已被修改。
-
+
是否重新读取它的内容?
-
+
磁盘文件'%1'已被删除。
-
+
是否保持它在小熊猫C++中打开的编辑窗口?
-
+
打开
-
+
编译失败
-
+
运行失败
-
-
+
+
确认转换
-
-
+
+
当前编辑器中的文件将会使用%1编码保存。<br />这项操作无法被撤回。<br />你确定要继续吗?
-
+
新监视表达式
-
+
输入监视表达式
-
+
(%1/%2)正在解析文件"%3"
-
-
+
+
完成%1个文件的解析,用时%2秒
-
+
(每秒%1个文件)
@@ -4751,12 +4761,12 @@ Are you really want to continue?
QObject
-
+
保存
-
+
将修改保存到"%1"?
@@ -6058,8 +6068,8 @@ Are you really want to continue?
SynEdit
-
-
+
+
高亮处理进入了死循环
diff --git a/RedPandaIDE/debugger.cpp b/RedPandaIDE/debugger.cpp
index 1a6f7510..a6fad45b 100644
--- a/RedPandaIDE/debugger.cpp
+++ b/RedPandaIDE/debugger.cpp
@@ -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;
diff --git a/RedPandaIDE/debugger.h b/RedPandaIDE/debugger.h
index 687a414f..bd8d5740 100644
--- a/RedPandaIDE/debugger.h
+++ b/RedPandaIDE/debugger.h
@@ -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();
diff --git a/RedPandaIDE/editor.cpp b/RedPandaIDE/editor.cpp
index bf48091b..01cde49e 100644
--- a/RedPandaIDE/editor.cpp
+++ b/RedPandaIDE/editor.cpp
@@ -848,7 +848,7 @@ void Editor::onPreparePaintHighlightToken(int line, int aChar, const QString &to
}
if (!selAvail() && attr->name() == SYNS_AttrSymbol) {
- qDebug()<