Skip to content

Commit

Permalink
Add exception filename to title bar
Browse files Browse the repository at this point in the history
Add the exception filename after the line number and change the
line number so it is in that file. It used to always be code.py.

Fixes adafruit#6702
  • Loading branch information
tannewt committed Aug 8, 2022
1 parent f1826b0 commit 86f4014
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 2 deletions.
3 changes: 2 additions & 1 deletion main.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,8 +213,9 @@ void supervisor_execution_status(void) {
if (_current_executing_filename != NULL) {
serial_write(_current_executing_filename);
} else if ((_exec_result.return_code & PYEXEC_EXCEPTION) != 0 &&
_exec_result.exception_line > 0 &&
exception != NULL) {
mp_printf(&mp_plat_print, "@%d %q", _exec_result.exception_line, exception->base.type->name);
mp_printf(&mp_plat_print, "@%d %s %q", _exec_result.exception_line, _exec_result.exception_filename, exception->base.type->name);
} else {
serial_write_compressed(translate("Done"));
}
Expand Down
4 changes: 3 additions & 1 deletion shared/runtime/pyexec.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,9 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
size_t n, *values;
mp_obj_exception_get_traceback(return_value, &n, &values);
if (values != NULL) {
result->exception_line = values[n - 2];
result->exception_line = values[1];
result->exception_filename[sizeof(result->exception_filename) - 1] = '\0';
strncpy(result->exception_filename, qstr_str(values[0]), sizeof(result->exception_filename) - 1);
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions shared/runtime/pyexec.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ typedef struct {
int return_code;
mp_obj_t exception;
int exception_line;
// Only store the first 32 characters of the filename. It is very unlikely that they can all be
// seen.
char exception_filename[33];
} pyexec_result_t;

extern pyexec_mode_kind_t pyexec_mode_kind;
Expand Down

0 comments on commit 86f4014

Please sign in to comment.