Commit a4ac5b9f authored by Paul Sokolovsky's avatar Paul Sokolovsky
Browse files

showbc: Make sure it's possible to trace MAKE_FUNCTION arg to actual bytecode.

parent dd0dee3a
...@@ -51,7 +51,7 @@ typedef struct _mp_code_state { ...@@ -51,7 +51,7 @@ typedef struct _mp_code_state {
mp_vm_return_kind_t mp_execute_bytecode(const byte *code, const mp_obj_t *args, uint n_args, const mp_obj_t *args2, uint n_args2, mp_obj_t *ret); mp_vm_return_kind_t mp_execute_bytecode(const byte *code, const mp_obj_t *args, uint n_args, const mp_obj_t *args2, uint n_args2, mp_obj_t *ret);
mp_vm_return_kind_t mp_execute_bytecode2(mp_code_state *code_state, volatile mp_obj_t inject_exc); mp_vm_return_kind_t mp_execute_bytecode2(mp_code_state *code_state, volatile mp_obj_t inject_exc);
void mp_bytecode_print(const byte *code, int len); void mp_bytecode_print(const void *descr, const byte *code, int len);
void mp_bytecode_print2(const byte *code, int len); void mp_bytecode_print2(const byte *code, int len);
// Helper macros to access pointer with least significant bit holding a flag // Helper macros to access pointer with least significant bit holding a flag
......
...@@ -81,7 +81,7 @@ void mp_emit_glue_assign_bytecode(mp_raw_code_t *rc, byte *code, uint len, uint ...@@ -81,7 +81,7 @@ void mp_emit_glue_assign_bytecode(mp_raw_code_t *rc, byte *code, uint len, uint
#endif #endif
#if MICROPY_DEBUG_PRINTERS #if MICROPY_DEBUG_PRINTERS
if (mp_verbose_flag > 0) { if (mp_verbose_flag > 0) {
mp_bytecode_print(code, len); mp_bytecode_print(rc, code, len);
} }
#endif #endif
} }
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
void mp_bytecode_print2(const byte *ip, int len); void mp_bytecode_print2(const byte *ip, int len);
void mp_bytecode_print(const byte *ip, int len) { void mp_bytecode_print(const void *descr, const byte *ip, int len) {
const byte *ip_start = ip; const byte *ip_start = ip;
// get code info size // get code info size
...@@ -66,7 +66,8 @@ void mp_bytecode_print(const byte *ip, int len) { ...@@ -66,7 +66,8 @@ void mp_bytecode_print(const byte *ip, int len) {
qstr source_file = code_info[4] | (code_info[5] << 8) | (code_info[6] << 16) | (code_info[7] << 24); qstr source_file = code_info[4] | (code_info[5] << 8) | (code_info[6] << 16) | (code_info[7] << 24);
qstr block_name = code_info[8] | (code_info[9] << 8) | (code_info[10] << 16) | (code_info[11] << 24); qstr block_name = code_info[8] | (code_info[9] << 8) | (code_info[10] << 16) | (code_info[11] << 24);
printf("File %s, code block '%s' (%d bytes)\n", qstr_str(source_file), qstr_str(block_name), len); printf("File %s, code block '%s' (descriptor: %p, bytecode @%p %d bytes)\n",
qstr_str(source_file), qstr_str(block_name), descr, code_info, len);
// bytecode prelude: state size and exception stack size; 16 bit uints // bytecode prelude: state size and exception stack size; 16 bit uints
{ {
...@@ -434,25 +435,25 @@ void mp_bytecode_print2(const byte *ip, int len) { ...@@ -434,25 +435,25 @@ void mp_bytecode_print2(const byte *ip, int len) {
case MP_BC_MAKE_FUNCTION: case MP_BC_MAKE_FUNCTION:
DECODE_PTR; DECODE_PTR;
printf("MAKE_FUNCTION " UINT_FMT, unum); printf("MAKE_FUNCTION %p", (void*)unum);
break; break;
case MP_BC_MAKE_FUNCTION_DEFARGS: case MP_BC_MAKE_FUNCTION_DEFARGS:
DECODE_PTR; DECODE_PTR;
printf("MAKE_FUNCTION_DEFARGS " UINT_FMT, unum); printf("MAKE_FUNCTION_DEFARGS %p", (void*)unum);
break; break;
case MP_BC_MAKE_CLOSURE: { case MP_BC_MAKE_CLOSURE: {
DECODE_PTR; DECODE_PTR;
machine_uint_t n_closed_over = *ip++; machine_uint_t n_closed_over = *ip++;
printf("MAKE_CLOSURE " UINT_FMT " " UINT_FMT, unum, n_closed_over); printf("MAKE_CLOSURE %p " UINT_FMT, (void*)unum, n_closed_over);
break; break;
} }
case MP_BC_MAKE_CLOSURE_DEFARGS: { case MP_BC_MAKE_CLOSURE_DEFARGS: {
DECODE_PTR; DECODE_PTR;
machine_uint_t n_closed_over = *ip++; machine_uint_t n_closed_over = *ip++;
printf("MAKE_CLOSURE_DEFARGS " UINT_FMT " " UINT_FMT, unum, n_closed_over); printf("MAKE_CLOSURE_DEFARGS %p " UINT_FMT, (void*)unum, n_closed_over);
break; break;
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment