From 92beb99bf75192621a04b8190ea2353ea91f6d6d Mon Sep 17 00:00:00 2001 From: oharboe Date: Wed, 9 Jul 2008 22:19:05 +0000 Subject: [PATCH] improve error messages a little bit. git-svn-id: svn://svn.berlios.de/openocd/trunk@781 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/jim.c | 13 +++++++++---- src/openocd.c | 29 +++++++---------------------- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/src/jim.c b/src/jim.c index 712ce74f5..be53233c1 100644 --- a/src/jim.c +++ b/src/jim.c @@ -8245,10 +8245,10 @@ int Jim_EvalObjVector(Jim_Interp *interp, int objc, Jim_Obj *const *objv) retcode = cmdPtr->cmdProc(interp, objc, objv); } else { retcode = JimCallProcedure(interp, cmdPtr, objc, objv); - if (retcode == JIM_ERR) { - JimAppendStackTrace(interp, - Jim_GetString(objv[0], NULL), "?", 1); - } + if (retcode == JIM_ERR) { + JimAppendStackTrace(interp, + Jim_GetString(objv[0], NULL), "?", 1); + } } } /* Decr refcount of arguments and return the retcode */ @@ -8540,6 +8540,11 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr) } else { /* Call [unknown] */ retcode = JimUnknown(interp, argc, argv); + if (retcode == JIM_ERR) { + JimAppendStackTrace(interp, + Jim_GetString(argv[0], NULL), script->fileName, + token[i-argc*2].linenr); + } } if (retcode != JIM_OK) { i -= argc*2; /* point to the command name. */ diff --git a/src/openocd.c b/src/openocd.c index b2a8ade56..50eb99e0b 100644 --- a/src/openocd.c +++ b/src/openocd.c @@ -357,35 +357,20 @@ int jim_command(command_context_t *context, char *line) int retval=ERROR_OK; int retcode=Jim_Eval(interp, line); - const char *result; - int reslen; - result = Jim_GetString(Jim_GetResult(interp), &reslen); if (retcode == JIM_ERR) { - int len, i; - - LOG_USER_N("Runtime error, file \"%s\", line %d:" JIM_NL, interp->errorFileName, interp->errorLine); - LOG_USER_N(" %s" JIM_NL, - Jim_GetString(interp->result, NULL)); - Jim_ListLength(interp, interp->stackTrace, &len); - for (i = 0; i < len; i += 3) { - Jim_Obj *objPtr; - const char *proc, *file, *line; - - Jim_ListIndex(interp, interp->stackTrace, i, &objPtr, JIM_NONE); - proc = Jim_GetString(objPtr, NULL); - Jim_ListIndex(interp, interp->stackTrace, i+1, &objPtr, JIM_NONE); - file = Jim_GetString(objPtr, NULL); - Jim_ListIndex(interp, interp->stackTrace, i+2, &objPtr, JIM_NONE); - line = Jim_GetString(objPtr, NULL); - LOG_USER_N("In procedure '%s' called at file \"%s\", line %s" JIM_NL, proc, file, line); - } + Jim_PrintErrorMessage(interp); long t; if (Jim_GetLong(interp, Jim_GetVariableStr(interp, "openocd_result", JIM_ERRMSG), &t)==JIM_OK) { return t; } return ERROR_FAIL; - } else if (retcode == JIM_EXIT) { + } + const char *result; + int reslen; + result = Jim_GetString(Jim_GetResult(interp), &reslen); + + if (retcode == JIM_EXIT) { /* ignore. */ /* exit(Jim_GetExitCode(interp)); */ } else {