diff --git a/src/nasal.h b/src/nasal.h index c8ed818..2c548c1 100644 --- a/src/nasal.h +++ b/src/nasal.h @@ -18,7 +18,7 @@ using usize = std::size_t; using f64 = double; // virtual machine stack depth, both global depth and value stack depth -const u32 VM_STACK_DEPTH = UINT16_MAX; +const u32 VM_STACK_DEPTH = UINT16_MAX + 1; // avoid error loading function bug in MSVC version nasal.exe #ifdef _MSC_VER diff --git a/src/nasal_vm.cpp b/src/nasal_vm.cpp index 6884376..2e7e3f8 100644 --- a/src/nasal_vm.cpp +++ b/src/nasal_vm.cpp @@ -189,8 +189,7 @@ void vm::value_info(var& val) { } void vm::function_detail_info(const nas_func& func) { - std::clog << "func@"; - std::clog << std::hex << reinterpret_cast(&func) << std::dec; + std::clog << "func "; std::vector argument_list = {}; argument_list.resize(func.keys.size()); @@ -238,6 +237,7 @@ void vm::function_call_trace() { // | locals| ... | // +-------+------------------+ // | func | function | <-- i - 1 - prev_func->local_size - 1 + // +-------+------------------+ if (i + 1 <= top && i[0].is_addr() && i[1].is_ret()) { auto r_addr = i[1].ret(); callsite.push_back(r_addr);