summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-08-14 03:56:28 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-08-14 03:56:28 +0000
commit39ac1d7c22072f2d520738098692bdbce2f380df (patch)
tree97866a3781af260ce47912f61a6190b9d72270f4 /eval.c
parentc086e784e200dc555e3f6d0ddb2edfdffd4f166d (diff)
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 9e30dc3b99..114dd2079a 100644
--- a/eval.c
+++ b/eval.c
@@ -1554,6 +1554,8 @@ call_trace_func(event, file, line, self, id)
int state;
volatile VALUE trace;
struct FRAME *prev;
+ char *file_save = sourcefile;
+ int line_save = sourceline;
if (!trace_func) return;
@@ -1585,6 +1587,8 @@ call_trace_func(event, file, line, self, id)
thread_critical--;
#endif
if (!trace_func) trace_func = trace;
+ sourceline = line_save;
+ sourcefile = file_save;
if (state) JUMP_TAG(state);
}
@@ -2780,7 +2784,7 @@ rb_longjmp(tag, mesg)
errinfo = mesg;
}
- if (debug && !NIL_P(errinfo)) {
+ if (debug && !NIL_P(errinfo) && !obj_is_kind_of(errinfo, eSystemExit)) {
fprintf(stderr, "Exception `%s' at %s:%d\n",
rb_class2name(CLASS_OF(errinfo)),
sourcefile, sourceline);