Improve stopping at errors. (#2278)

In some cases the debugger catches (reports) the same
exception multiple times. This is confusing since these
not new errors. This patch fixes this behaviour.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2018-04-18 12:31:17 +02:00
committed by yichoi
parent 96b528a486
commit 095b730f9d
7 changed files with 164 additions and 14 deletions
+11
View File
@@ -0,0 +1,11 @@
c
s
c
c
c
c
c
c
c
c
c
+42
View File
@@ -0,0 +1,42 @@
Connecting to: localhost:5001
Stopped at tests/debugger/do_throw_adv.js:15
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: 2
Stopped at tests/debugger/do_throw_adv.js:18 (in f() at line:17, col:1)
(jerry-debugger) s
Stopped at tests/debugger/do_throw_adv.js:32
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: 4
Stopped at tests/debugger/do_throw_adv.js:18 (in f() at line:17, col:1)
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: Catch again
Stopped at tests/debugger/do_throw_adv.js:41
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: 7
Stopped at tests/debugger/do_throw_adv.js:18 (in f() at line:17, col:1)
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: 10
Stopped at tests/debugger/do_throw_adv.js:18 (in f() at line:17, col:1)
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: Replace the other error
Stopped at tests/debugger/do_throw_adv.js:63
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: 13
Stopped at tests/debugger/do_throw_adv.js:18 (in f() at line:17, col:1)
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: Should be caught
Stopped at tests/debugger/do_throw_adv.js:76
(jerry-debugger) c
Exception throw detected (to disable automatic stop type exception 0)
Exception hint: 16
Stopped at tests/debugger/do_throw_adv.js:18 (in f() at line:17, col:1)
(jerry-debugger) c
err: Script Error: 16
+81
View File
@@ -0,0 +1,81 @@
// Copyright JS Foundation and other contributors, http://js.foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
var a = 1;
function f() {
throw ++a;
}
function g() {
f();
}
function h() {
g();
}
try {
h();
} catch (e) {
++a;
}
try {
h();
} catch (e) {
++a;
try {
throw "Catch again";
} catch (e) {
++a;
}
}
try {
try {
h();
} finally {
++a;
}
++a; /* Should not happen. */
} catch (e) {
++a;
}
try {
try {
h();
} finally {
++a;
throw "Replace the other error";
}
} catch (e) {
++a;
}
try {
break_try_label: try {
h();
} finally {
++a;
break break_try_label;
}
throw "Should be caught";
} catch (e) {
++a;
}
h();