Comments (8)
a quick research on how other projects are reading the dwarf section in wasm:
binaryen: llvm DWARFContext https://github.com/WebAssembly/binaryen/blob/d6c5e4ab15df271521df7b35665c7463b2c490ca/src/wasm/wasm-debug.cpp#L96-L116
cranelift: https://github.com/gimli-rs/gimli (something written in rust)
from wasm-micro-runtime.
btw, i wonder why dwarf_extractor.cpp uses the LLDB API, rather than, say, llvm/DebugInfo/DWARF/ api.
@wenyongh do you remember?
from wasm-micro-runtime.
btw, i wonder why dwarf_extractor.cpp uses the LLDB API, rather than, say, llvm/DebugInfo/DWARF/ api. @wenyongh do you remember?
The source debugger feature was implemented by Ant group long time ago, I just cannot remember the details now. Maybe the LLDB API provides more capability?
from wasm-micro-runtime.
It seems that AOT debugging now only has limited functionality. It was aimed to support C first It hardly covers any additional C++ features. Thus the current function-to-function debug symbol mapping only supports C styles function. And I think that's why it error when it comes to Cpp compiled wasm or Rust compiled wasm
from wasm-micro-runtime.
It seems that AOT debugging now only has limited functionality. It was aimed to support C first It hardly covers any additional C++ features. Thus the current function-to-function debug symbol mapping only supports C styles function. And I think that's why it error when it comes to Cpp compiled wasm or Rust compiled wasm
i agree.
i tend to think a fix involves a major surgery like switching from lldb api to llvm api to read dwarf. how do you think?
from wasm-micro-runtime.
I think it's feasible, but as you said it would be non-trivial changes. BTW, besides the extractor, will there also be some major modifications for code emission and file generation?
from wasm-micro-runtime.
I think it's feasible, but as you said it would be non-trivial changes. BTW, besides the extractor, will there also be some major modifications for code emission and file generation?
i guess it will be mostly contained in dwarf_extractor.cpp.
from wasm-micro-runtime.
i guess it will be mostly contained in dwarf_extractor.cpp.
Got it, thanks
from wasm-micro-runtime.
Related Issues (20)
- Optional memory sandboxing HOT 5
- default WASM_STACK_GUARD_SIZE seems too small for linux HOT 16
- StackClashProtector for OS_ENABLE_HW_BOUND_CHECK
- OS_ENABLE_HW_BOUND_CHECK can cause resource leak HOT 4
- `fd_advise` always succeeds
- per-host function override of native stack requirement HOT 7
- argv_buf on-stack array sizes might have a room to improve
- How to use coroutines in wasm? HOT 2
- Add ability to get import and export information from wasm_export interface HOT 2
- An unexpected behavior in multiple modes HOT 2
- Unexpected Execution HOT 2
- WAMR throw OOB exception in LLVM-JIT mode while not in Fast-JIT mode HOT 3
- Error occurs when calling native function with local variable in AOT mode? HOT 8
- Heap Buffer Overflow Inside "wasm_loader_check_br" Function HOT 3
- Out-of-Bound Memory Read inside "block_type_get_arity" Function HOT 3
- Error compiling wamr 2.0.0 for Windows. Error: invalid numeric argument '/Wextra' HOT 3
- On memory usage when loading a Wasm file with fast interpreter HOT 5
- wamrc size_level heuristic
- Exception: uninitialized element HOT 4
- Unexpected "type mismatch" Exception on JIT mode HOT 2
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.