Add exception filename to title bar
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 #6702
This commit is contained in:
parent
f1826b054a
commit
86f4014f83
3
main.c
3
main.c
|
@ -213,8 +213,9 @@ void supervisor_execution_status(void) {
|
||||||
if (_current_executing_filename != NULL) {
|
if (_current_executing_filename != NULL) {
|
||||||
serial_write(_current_executing_filename);
|
serial_write(_current_executing_filename);
|
||||||
} else if ((_exec_result.return_code & PYEXEC_EXCEPTION) != 0 &&
|
} else if ((_exec_result.return_code & PYEXEC_EXCEPTION) != 0 &&
|
||||||
|
_exec_result.exception_line > 0 &&
|
||||||
exception != NULL) {
|
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 {
|
} else {
|
||||||
serial_write_compressed(translate("Done"));
|
serial_write_compressed(translate("Done"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,7 +199,9 @@ STATIC int parse_compile_execute(const void *source, mp_parse_input_kind_t input
|
||||||
size_t n, *values;
|
size_t n, *values;
|
||||||
mp_obj_exception_get_traceback(return_value, &n, &values);
|
mp_obj_exception_get_traceback(return_value, &n, &values);
|
||||||
if (values != NULL) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,9 @@ typedef struct {
|
||||||
int return_code;
|
int return_code;
|
||||||
mp_obj_t exception;
|
mp_obj_t exception;
|
||||||
int exception_line;
|
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;
|
} pyexec_result_t;
|
||||||
|
|
||||||
extern pyexec_mode_kind_t pyexec_mode_kind;
|
extern pyexec_mode_kind_t pyexec_mode_kind;
|
||||||
|
|
Loading…
Reference in New Issue