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)
- An invalid section specifier `.aot_stack_sizes` HOT 1
- AOT module load failed: resolve symbol __atomic_compare_exchange_4 failed HOT 10
- The qWasmStackValue command is missing during runtime debugging
- AOT_SECTION_TYPE_SIGNATURE HOT 2
- WASI sockets: POSIX platform `os_socket_recvfrom` unintended behavior HOT 7
- sysbench mutex workload is taking more execution time with iwasm than native x86_64 execution HOT 2
- sysbench memory and threads workload is giving less benchmarking results with iwasm than native aarch64 gcc execution HOT 12
- Updating Exception Handling in WAMR HOT 20
- [RFC] Option to reduce code size of the generated AOT file when stack trace is enabled HOT 7
- sysbench wasm module of CPU workload is giving unexpected results than native gcc compiled sysbench cpu workload.
- MIPS32 support / alignment issues HOT 11
- [RFC] Table64 extension for Memory64 proposal
- CI: "spec test on nuttx" riscv job is failing frequently HOT 12
- Access to call stack when calling native functions HOT 5
- wamr windows build error with clang HOT 1
- [RFC] Add SIMD128 support in the interpreters HOT 3
- wamr windows build error with UVWASI HOT 7
- [RFC] Support instantiation linking
- clang asan Segmentation fault. HOT 2
- clang & windows build should use longjmp HOT 3
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.