|
|
@@ -2915,6 +2915,7 @@ wasm_interp_create_call_stack(struct WASMExecEnv *exec_env)
|
|
|
total_len += \
|
|
|
wasm_runtime_dump_line_buf_impl(line_buf, print, &buf, &len); \
|
|
|
if ((!print) && buf && (len == 0)) { \
|
|
|
+ exception_unlock(module_inst); \
|
|
|
return total_len; \
|
|
|
} \
|
|
|
} while (0)
|
|
|
@@ -2939,6 +2940,7 @@ wasm_interp_dump_call_stack(struct WASMExecEnv *exec_env, bool print, char *buf,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+ exception_lock(module_inst);
|
|
|
snprintf(line_buf, sizeof(line_buf), "\n");
|
|
|
PRINT_OR_DUMP();
|
|
|
|
|
|
@@ -2947,6 +2949,7 @@ wasm_interp_dump_call_stack(struct WASMExecEnv *exec_env, bool print, char *buf,
|
|
|
uint32 line_length, i;
|
|
|
|
|
|
if (!bh_vector_get(module_inst->frames, n, &frame)) {
|
|
|
+ exception_unlock(module_inst);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
@@ -2977,6 +2980,7 @@ wasm_interp_dump_call_stack(struct WASMExecEnv *exec_env, bool print, char *buf,
|
|
|
}
|
|
|
snprintf(line_buf, sizeof(line_buf), "\n");
|
|
|
PRINT_OR_DUMP();
|
|
|
+ exception_unlock(module_inst);
|
|
|
|
|
|
return total_len + 1;
|
|
|
}
|