clayborg added a comment.

Sounds like we have an approach to try! I would like to see solutions that are 
not WASM specific when possible.

One other way of doing the memory read/write with segments: maybe the "m" and 
"M" packets can be overloaded include the memory segment identifier if the 
remote GDB server responds with "OK" to a QEnable packet. LLDB currently 
enables some features in the remote stub if the QEnable packet responds with 
"OK", like:

  <  23> send packet: $QSetDetachOnError:1#f8
  <   6> read packet: $OK#00

What if we added a new "QEnableMemorySegments" packet that then requires all 
memory reads/writes to include the memory segment in the packet? Without this 
or if the GDB server responds with "$#00" (unimplemented), the memory read 
packets look like:

  m addr,length
  M addr,length:XX…

If the GDB server responds with "OK" to the QEnableMemorySegments, then the 
packets become:

  m addr,segment,length
  M addr,segment,length:XX…

I am guessing we can't be the first to do segmented memory read/write via GDB 
server, so it would be good to look around to see what other may have done.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D78801/new/

https://reviews.llvm.org/D78801



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to