From 8f9dcdd4e6e9ca134d67dfce114ebc426556821d Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Thu, 14 Jan 2010 10:13:19 +0100 Subject: errors: improve stack traces for return -code error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the file and line number for return -code error's are now added to the dumped stack trace. Signed-off-by: Øyvind Harboe --- jim.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'jim.c') diff --git a/jim.c b/jim.c index e4ad176..fa16a82 100644 --- a/jim.c +++ b/jim.c @@ -8090,6 +8090,7 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr) int *cs; /* command structure array */ int retcode = JIM_OK; Jim_Obj *sargv[JIM_EVAL_SARGV_LEN], **argv = NULL, *tmpObjPtr; + Jim_Obj *errorProc = NULL; interp->errorFlag = 0; @@ -8242,26 +8243,16 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr) if (cmd->cmdProc) { interp->cmdPrivData = cmd->privData; retcode = cmd->cmdProc(interp, argc, argv); - if (retcode == JIM_ERR_ADDSTACK) { - JimAppendStackTrace(interp, "", script->fileName, cmdtoken->linenr); - retcode = JIM_ERR; - } } else { retcode = JimCallProcedure(interp, cmd, argc, argv); if (retcode == JIM_ERR) { - JimAppendStackTrace(interp, - Jim_GetString(argv[0], NULL), script->fileName, - cmdtoken->linenr); + errorProc = argv[0]; + Jim_IncrRefCount(errorProc); } } } else { /* Call [unknown] */ retcode = JimUnknown(interp, argc, argv); - if (retcode == JIM_ERR) { - JimAppendStackTrace(interp, - "", script->fileName, - cmdtoken->linenr); - } } if (interp->signal_level && interp->signal) { /* Check for a signal after each command */ -- cgit v1.1