diff --git a/core/iwasm/common/wasm_application.c b/core/iwasm/common/wasm_application.c index fcbeb30e2..ec3116c99 100644 --- a/core/iwasm/common/wasm_application.c +++ b/core/iwasm/common/wasm_application.c @@ -105,6 +105,9 @@ wasm_application_execute_main(WASMModuleInstanceCommon *module_inst, int32 argc, the actual main function. Directly calling main function may cause exception thrown. */ if ((func = wasm_runtime_lookup_wasi_start_function(module_inst))) { +#if WASM_ENABLE_DEBUG_INTERP != 0 + wasm_runtime_start_debug_instance(exec_env); +#endif return wasm_runtime_call_wasm(exec_env, func, 0, NULL); } #endif /* end of WASM_ENABLE_LIBC_WASI */ @@ -186,6 +189,10 @@ wasm_application_execute_main(WASMModuleInstanceCommon *module_inst, int32 argc, (uint32)wasm_runtime_addr_native_to_app(module_inst, argv_offsets); } +#if WASM_ENABLE_DEBUG_INTERP != 0 + wasm_runtime_start_debug_instance(exec_env); +#endif + ret = wasm_runtime_call_wasm(exec_env, func, argc1, argv1); if (ret && func_type->result_count > 0 && argc > 0 && argv) /* copy the return value */ @@ -570,6 +577,10 @@ wasm_application_execute_func(WASMModuleInstanceCommon *module_inst, goto fail; } +#if WASM_ENABLE_DEBUG_INTERP != 0 + wasm_runtime_start_debug_instance(exec_env); +#endif + if (!wasm_runtime_call_wasm(exec_env, target_func, argc1, argv1)) { goto fail; } diff --git a/core/iwasm/libraries/debug-engine/debug_engine.c b/core/iwasm/libraries/debug-engine/debug_engine.c index 3f209af7b..4fa34f537 100644 --- a/core/iwasm/libraries/debug-engine/debug_engine.c +++ b/core/iwasm/libraries/debug-engine/debug_engine.c @@ -315,7 +315,6 @@ wasm_debug_instance_create(WASMCluster *cluster) if (!wasm_debug_control_thread_create(instance)) { LOG_ERROR("WASM Debug Engine error: failed to create control thread"); - wasm_runtime_free(instance); goto fail3; }