|
LLDB mainline
|
Classes | |
| class | DynamicLoaderWasmDYLD |
| class | ObjectFileWasm |
| Generic Wasm object file reader. More... | |
| class | ProcessWasm |
| ProcessWasm provides the access to the Wasm program state retrieved from the Wasm engine. More... | |
| class | RegisterContextWasm |
| class | SymbolVendorWasm |
| class | ThreadWasm |
| ProcessWasm provides the access to the Wasm program state retrieved from the Wasm engine. More... | |
| class | UnwindWasm |
| UnwindWasm manages stack unwinding for a WebAssembly process. More... | |
| struct | wasm_addr_t |
| For the purpose of debugging, we can represent all these separated 32-bit address spaces with a single virtual 64-bit address space. More... | |
| struct | WasmGlobal |
| A global declared by the module itself. More... | |
| struct | WasmVirtualRegisterInfo |
Typedefs | |
| typedef std::shared_ptr< RegisterContextWasm > | RegisterContextWasmSP |
Enumerations | |
| enum | WasmAddressType : uint8_t { Memory = 0x00 , Object = 0x01 , Global = 0x02 , Invalid = 0x03 } |
| Each WebAssembly module has separate address spaces for Code and Memory. More... | |
Functions | |
| static constexpr uint64_t | MakeFieldMask (uint32_t bits, uint32_t shift) |
Variables | |
| static constexpr uint32_t | kWasmOffsetBits = 32 |
| Widths of the fields a 64-bit address is made of, from the low bits up. | |
| static constexpr uint32_t | kWasmModuleIDBits = 30 |
| static constexpr uint32_t | kWasmAddressTypeBits = 2 |
| static constexpr uint32_t | kWasmModuleIDShift = kWasmOffsetBits |
| static constexpr uint32_t | kWasmAddressTypeShift |
| static constexpr uint64_t | kWasmOffsetMask = MakeFieldMask(kWasmOffsetBits, 0) |
| static constexpr uint64_t | kWasmModuleIDMask |
| static constexpr uint64_t | kWasmAddressTypeMask |
| typedef std::shared_ptr<RegisterContextWasm> lldb_private::wasm::RegisterContextWasmSP |
Definition at line 24 of file RegisterContextWasm.h.
| enum lldb_private::wasm::WasmAddressType : uint8_t |
Each WebAssembly module has separate address spaces for Code and Memory.
A WebAssembly module also has a Data section which, when the module is loaded, gets mapped into a region in the module Memory.
Globals are not addressable: they live in an index space of their own. The synthetic Global space stands in for one, holding the index where an address would hold an offset, so that a global can be named and read.
The tag is two bits wide and these are the only spaces there are, so the remaining value means an address that belongs to nothing.
| Enumerator | |
|---|---|
| Memory | |
| Object | |
| Global | |
| Invalid | |
Definition at line 28 of file WasmAddress.h.
|
staticconstexpr |
Definition at line 49 of file WasmAddress.h.
References lldb_private::bits().
|
staticconstexpr |
Definition at line 40 of file WasmAddress.h.
|
staticconstexpr |
Definition at line 56 of file WasmAddress.h.
Referenced by lldb_private::wasm::ObjectFileWasm::SetLoadAddress().
|
staticconstexpr |
Definition at line 46 of file WasmAddress.h.
Referenced by lldb_private::wasm::wasm_addr_t::wasm_addr_t().
|
staticconstexpr |
Definition at line 39 of file WasmAddress.h.
|
staticconstexpr |
Definition at line 54 of file WasmAddress.h.
Referenced by lldb_private::wasm::wasm_addr_t::wasm_addr_t().
|
staticconstexpr |
Definition at line 45 of file WasmAddress.h.
Referenced by lldb_private::wasm::wasm_addr_t::wasm_addr_t().
|
staticconstexpr |
Widths of the fields a 64-bit address is made of, from the low bits up.
The bitfields below are declared with the same constants, so a field and the mask that extracts it cannot come to disagree.
Definition at line 38 of file WasmAddress.h.
|
staticconstexpr |
Definition at line 53 of file WasmAddress.h.
Referenced by lldb_private::wasm::wasm_addr_t::wasm_addr_t().