showbc: Make sure it's possible to trace MAKE_FUNCTION arg to actual bytecode.
diff --git a/py/bc.h b/py/bc.h
index 6c604fe..915a0f2 100644
--- a/py/bc.h
+++ b/py/bc.h
@@ -51,7 +51,7 @@
 
 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);
-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);
 
 // Helper macros to access pointer with least significant bit holding a flag
diff --git a/py/emitglue.c b/py/emitglue.c
index 528c3bd..fa62ace 100644
--- a/py/emitglue.c
+++ b/py/emitglue.c
@@ -81,7 +81,7 @@
 #endif
 #if MICROPY_DEBUG_PRINTERS
     if (mp_verbose_flag > 0) {
-        mp_bytecode_print(code, len);
+        mp_bytecode_print(rc, code, len);
     }
 #endif
 }
diff --git a/py/showbc.c b/py/showbc.c
index 8169368..5a4e918 100644
--- a/py/showbc.c
+++ b/py/showbc.c
@@ -56,7 +56,7 @@
 
 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;
 
     // get code info size
@@ -66,7 +66,8 @@
 
     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);
-    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
     {
@@ -434,25 +435,25 @@
 
             case MP_BC_MAKE_FUNCTION:
                 DECODE_PTR;
-                printf("MAKE_FUNCTION " UINT_FMT, unum);
+                printf("MAKE_FUNCTION %p", (void*)unum);
                 break;
 
             case MP_BC_MAKE_FUNCTION_DEFARGS:
                 DECODE_PTR;
-                printf("MAKE_FUNCTION_DEFARGS " UINT_FMT, unum);
+                printf("MAKE_FUNCTION_DEFARGS %p", (void*)unum);
                 break;
 
             case MP_BC_MAKE_CLOSURE: {
                 DECODE_PTR;
                 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;
             }
 
             case MP_BC_MAKE_CLOSURE_DEFARGS: {
                 DECODE_PTR;
                 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;
             }