|
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) |
| uint32_t | GetWasmModuleID (lldb::addr_t addr) |
| The module an address belongs to, or kWasmInvalidModuleID for an invalid address. | |
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 |
| static constexpr uint32_t | kWasmInvalidModuleID = UINT32_MAX |
| A value that names no module. | |
| 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 29 of file WasmAddress.h.
|
inline |
The module an address belongs to, or kWasmInvalidModuleID for an invalid address.
Definition at line 94 of file WasmAddress.h.
References lldb_private::wasm::wasm_addr_t::GetModuleID(), kWasmInvalidModuleID, and LLDB_INVALID_ADDRESS.
Referenced by lldb_private::wasm::ProcessWasm::GetFallbackFrameIndex(), and lldb_private::wasm::RegisterContextWasm::GetModuleID().
|
staticconstexpr |
Definition at line 50 of file WasmAddress.h.
References lldb_private::bits().
|
staticconstexpr |
Definition at line 41 of file WasmAddress.h.
|
staticconstexpr |
Definition at line 57 of file WasmAddress.h.
Referenced by lldb_private::wasm::ObjectFileWasm::SetLoadAddress().
|
staticconstexpr |
Definition at line 47 of file WasmAddress.h.
Referenced by lldb_private::wasm::wasm_addr_t::wasm_addr_t().
|
staticconstexpr |
A value that names no module.
Every value the id field can hold names a module, zero included, so the sentinel has to come from outside that range.
Definition at line 62 of file WasmAddress.h.
Referenced by lldb_private::wasm::ProcessWasm::CanNameInstance(), lldb_private::wasm::ProcessWasm::GetFallbackFrameIndex(), and GetWasmModuleID().
|
staticconstexpr |
Definition at line 40 of file WasmAddress.h.
|
staticconstexpr |
Definition at line 55 of file WasmAddress.h.
Referenced by lldb_private::wasm::wasm_addr_t::wasm_addr_t().
|
staticconstexpr |
Definition at line 46 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 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().