From 9ad0a75148466d34059ce2f46e0e828a0bc2dc0a Mon Sep 17 00:00:00 2001 From: paladin-t Date: Tue, 26 Jan 2016 10:19:15 +0800 Subject: [PATCH] +added source file information to stepped handler. --- HISTORY | 3 +++ MY-BASIC Quick Reference.pdf | Bin 263861 -> 263838 bytes core/my_basic.c | 6 +++--- core/my_basic.h | 2 +- shell/main.c | 3 ++- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/HISTORY b/HISTORY index be5e82a..dc56f50 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +Jan. 26 2016 +Added source file information to stepped handler + Jan. 25 2016 Fixed a memory leak when printing a referenced usertype Fixed a bug with nested IF statement diff --git a/MY-BASIC Quick Reference.pdf b/MY-BASIC Quick Reference.pdf index b790b11ae26ab901524fb1d446e6496dcff78a1f..30a8d5313f61adc254ca0bb4ec23b2423d778b2a 100644 GIT binary patch delta 4250 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 BGmHQL delta 4282 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 { obj = (_object_t*)ast->data; #ifdef MB_ENABLE_SOURCE_TRACE - s->debug_stepped_handler(s, obj->source_pos, obj->source_row, obj->source_col); + s->debug_stepped_handler(s, s->source_file, obj->source_pos, obj->source_row, obj->source_col); #else /* MB_ENABLE_SOURCE_TRACE */ - s->debug_stepped_handler(s, obj->source_pos, 0, 0); + s->debug_stepped_handler(s, s->source_file, obj->source_pos, 0, 0); #endif /* MB_ENABLE_SOURCE_TRACE */ } else { - s->debug_stepped_handler(s, -1, 0, 0); + s->debug_stepped_handler(s, s->source_file, -1, 0, 0); } } } diff --git a/core/my_basic.h b/core/my_basic.h index 0b9a4f3..5dfa93b 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -420,7 +420,7 @@ typedef int (* mb_func_t)(struct mb_interpreter_t*, void**); typedef int (* mb_has_routine_arg_func_t)(struct mb_interpreter_t*, void**, mb_value_t*, unsigned, unsigned*, void*); typedef int (* mb_pop_routine_arg_func_t)(struct mb_interpreter_t*, void**, mb_value_t*, unsigned, unsigned*, void*, mb_value_t*); typedef int (* mb_routine_func_t)(struct mb_interpreter_t*, void**, mb_value_t*, unsigned, void*, mb_has_routine_arg_func_t, mb_pop_routine_arg_func_t); -typedef void (* mb_debug_stepped_handler_t)(struct mb_interpreter_t*, int, unsigned short, unsigned short); +typedef void (* mb_debug_stepped_handler_t)(struct mb_interpreter_t*, char*, int, unsigned short, unsigned short); typedef void (* mb_error_handler_t)(struct mb_interpreter_t*, enum mb_error_e, char*, char*, int, unsigned short, unsigned short, int); typedef int (* mb_print_func_t)(const char*, ...); typedef int (* mb_input_func_t)(char*, int); diff --git a/shell/main.c b/shell/main.c index 928f98b..8eb1883 100755 --- a/shell/main.c +++ b/shell/main.c @@ -1127,8 +1127,9 @@ static int beep(struct mb_interpreter_t* s, void** l) { ** Callbacks and handlers */ -static void _on_stepped(struct mb_interpreter_t* s, int p, unsigned short row, unsigned short col) { +static void _on_stepped(struct mb_interpreter_t* s, char* f, int p, unsigned short row, unsigned short col) { mb_unrefvar(s); + mb_unrefvar(f); mb_unrefvar(p); mb_unrefvar(row); mb_unrefvar(col);