summaryrefslogtreecommitdiffstatshomepage
path: root/py/vm.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-23 03:40:24 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-23 03:46:00 +0300
commitc5e32c69952222b12e65655474c5f4c4481ea9f7 (patch)
tree9af06c1e2ce450e9b2f21f793cad2cfe97d26730 /py/vm.c
parent4c6b375960098c6596541b1e48c1210b10198d98 (diff)
downloadmicropython-c5e32c69952222b12e65655474c5f4c4481ea9f7.tar.gz
micropython-c5e32c69952222b12e65655474c5f4c4481ea9f7.zip
vm: Add rudimentary bytecode execution tracing capability.
Diffstat (limited to 'py/vm.c')
-rw-r--r--py/vm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/py/vm.c b/py/vm.c
index b1c1719b72..8a0bc7dbe8 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -14,6 +14,11 @@
#include "objgenerator.h"
#define DETECT_VM_STACK_OVERFLOW (0)
+#if 0
+#define TRACE(ip) mp_byte_code_print2(ip, 1);
+#else
+#define TRACE(ip)
+#endif
// Value stack grows up (this makes it incompatible with native C stack, but
// makes sure that arguments to functions are in natural order arg1..argN
@@ -168,6 +173,7 @@ mp_vm_return_kind_t mp_execute_byte_code_2(const byte *code_info, const byte **i
#if MICROPY_USE_COMPUTED_GOTO
#include "vmentrytable.h"
#define DISPATCH() do { \
+ TRACE(ip); \
save_ip = ip; \
op = *ip++; \
goto *entry_table[op]; \
@@ -223,6 +229,7 @@ dispatch_loop:
#if MICROPY_USE_COMPUTED_GOTO
DISPATCH();
#else
+ TRACE(ip);
save_ip = ip;
op = *ip++;