Comments (4)
So how about LOG_ERROR for the actual wasm exception and LOG_WARNING/LOG_VERBOSE to replace the log you are pointing out? And maybe add extra info like "unrecognized exception for wasm, pass to user's host exception handler" to explain the intention of return EXCEPTION_CONTINUE_SEARCH is to search for the next handler(transfer to the user's own handler). What do you think?
from wasm-micro-runtime.
Hi, I have looked into the code in more detail now.
I would prefer to log a warning when inside wasm, and unknown exception code only. There is no point in logging anything if the exception is not related to the wasm, as such cases should be handled in other handlers. And no logging is necessary when the exception code is handled with wasm_set_exception.
diff --git a/core/iwasm/common/wasm_runtime_common.c b/core/iwasm/common/wasm_runtime_common.c
index c6e9f0b9..3dbcc76d 100644
--- a/core/iwasm/common/wasm_runtime_common.c
+++ b/core/iwasm/common/wasm_runtime_common.c
@@ -384,12 +384,16 @@ runtime_exception_handler(EXCEPTION_POINTERS *exce_info)
return ret;
}
#endif
+ else {
+ LOG_WARNING("Unhandled exception thrown: "
+ "exception code: 0x%lx, "
+ "exception address: %p, "
+ "exception information: %p\n",
+ ExceptionRecord->ExceptionCode,
+ ExceptionRecord->ExceptionAddress, sig_addr);
+ }
}
- LOG_ERROR("Unhandled exception thrown: exception code: 0x%lx, "
- "exception address: %p, exception information: %p\n",
- ExceptionRecord->ExceptionCode, ExceptionRecord->ExceptionAddress,
- sig_addr);
return EXCEPTION_CONTINUE_SEARCH;
}
#endif /* end of BH_PLATFORM_WINDOWS */
Furthermore, It would be nice to have similar logging on linux, which currently does not log anything. However, I dont know if it is allowed to do so inside signal handler?
from wasm-micro-runtime.
I think the current method in Linux is fine. If you look at the code logic here: https://github.com/bytecodealliance/wasm-micro-runtime/blob/main/core/shared/platform/common/posix/posix_thread.c#L610-L643
If the signal handler of the runtime cannot handle it, the runtime will first check whether there are other signal handlers registered previously. If there are, it will be transferred to it. If not, it will finally log it.
from wasm-micro-runtime.
awesome. thanks ;)
from wasm-micro-runtime.
Related Issues (20)
- printf_wrapper (libc builtin) makes multiple calls to os_printf with individual characters HOT 6
- Can AOT file built on windows run directly on other platforms? HOT 5
- How to load and run another wasm in a running wasm? HOT 12
- Exception Handling Support in Fast Interpreter HOT 1
- iwasm with aot file fail with SIGSEGV HOT 4
- Exception for Assemblyscript HOT 1
- How to cross compile to riscv64 HOT 2
- Unexpected behavior on fast interpreter mode HOT 2
- A bug in validation HOT 2
- Report some typo in wamr.gitbook HOT 1
- Calling "step-over" on the last line of the function failed
- CI test-wamr-ide failed to run HOT 1
- Request to add vmlib on Android platform to align with Linux platform HOT 2
- A bug in ckecking data count section HOT 1
- [wasi-nn] add more backends into `libraries/wasi-nn`
- Enabling WAMR_BUILD_DEBUG_INTERP causes the program to run slower
- Exception: out of bounds memory access HOT 3
- How to debug wasm on the Windows platform HOT 2
- Got Crash when call Intel dcap verification lib which link with wasm from java
- Failure to execute AOT code compiled to 32bit --target=i386 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wasm-micro-runtime.