diff --git a/core/iwasm/common/wasm_application.c b/core/iwasm/common/wasm_application.c index 1bb9f29b6..05e53c451 100644 --- a/core/iwasm/common/wasm_application.c +++ b/core/iwasm/common/wasm_application.c @@ -195,6 +195,7 @@ execute_main(WASMModuleInstanceCommon *module_inst, int32 argc, char *argv[]) if (argv_buf_offset) wasm_runtime_module_free(module_inst, argv_buf_offset); + return ret; } @@ -203,7 +204,7 @@ wasm_application_execute_main(WASMModuleInstanceCommon *module_inst, int32 argc, char *argv[]) { bool ret; -#if WASM_ENABLE_MEMORY_PROFILING != 0 +#if (WASM_ENABLE_MEMORY_PROFILING != 0) || (WASM_ENABLE_DUMP_CALL_STACK != 0) WASMExecEnv *exec_env; #endif @@ -220,7 +221,15 @@ wasm_application_execute_main(WASMModuleInstanceCommon *module_inst, int32 argc, wasm_runtime_dump_perf_profiling(module_inst); #endif - return (ret && !wasm_runtime_get_exception(module_inst)) ? true : false; + if (ret) + ret = wasm_runtime_get_exception(module_inst) == NULL; + +#if WASM_ENABLE_DUMP_CALL_STACK != 0 + if (!ret) + wasm_runtime_dump_call_stack(exec_env); +#endif + + return ret; } /** diff --git a/product-mini/platforms/nuttx/wamr.mk b/product-mini/platforms/nuttx/wamr.mk index 7c9b546ff..78cf3eea1 100644 --- a/product-mini/platforms/nuttx/wamr.mk +++ b/product-mini/platforms/nuttx/wamr.mk @@ -216,6 +216,12 @@ else CFLAGS += -DWASM_ENABLE_MEMORY_TRACING=0 endif +ifeq ($(CONFIG_INTERPRETERS_WAMR_DUMP_CALL_STACK),y) +CFLAGS += -DWASM_ENABLE_DUMP_CALL_STACK=1 +else +CFLAGS += -DWASM_ENABLE_DUMP_CALL_STACK=0 +endif + ifeq ($(CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN),y) CFLAGS += -DWASM_ENABLE_LIBC_BUILTIN=1 CSRCS += libc_builtin_wrapper.c