================
@@ -1450,6 +1450,14 @@ class Process : public 
std::enable_shared_from_this<Process>,
   /// platforms where there is a difference (only Arm Thumb at this time).
   lldb::addr_t FixAnyAddress(lldb::addr_t pc);
 
+  /// Some targets might use bits in a code address to represent additional
+  /// information; for example WebAssembly targets have a different memory 
space
+  /// per module and have a different address space per memory and code.
+  virtual lldb::addr_t FixMemoryAddress(lldb::addr_t address,
----------------
paolosevMSFT wrote:

I thought to add a new function because `Process::FixCodeAddress`, 
`Process::FixDataAddress`, `Process::FixAnyAddress` by default forward the call 
to `ABI::FixCodeAddress`, `ABI::FixDataAddress`, `ABI::FixAnyAddress`, which 
are implemented by plugin-specific ABIs like `ABISysV_arm`, `ABIMacOSX_arm`. 
But here we are not really dealing with a different ABI, it is more a custom 
representation of Wasm memory addresses used between the debugger and the Wasm 
engine.

If you prefer, we could reuse `Process::FixAnyAddress`, making it virtual and 
overriding it in `ProcessWasm`.

https://github.com/llvm/llvm-project/pull/77949
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to