Issue 155172
Summary LLDB `process plugin packet send` truncates responses containing null bytes
Labels new issue
Assignees
Reporter patryk4815
    When using LLDB’s `process plugin packet send` command, responses containing null bytes (`\x00`) are not handled correctly.  
This makes it impossible to use Python scripting (via `HandleCommand`) for gdb-remote packets that may legitimately include zeros (for example, memory reads or `vFile` operations).

This limitation blocks implementing certain functionality in downstream tools like https://github.com/pwndbg/pwndbg , which rely on being able to send and receive arbitrary gdb-remote packets.

### Repro

```lldb
(lldb) process plugin packet send vFile:open:2f70726f632f73656c662f657865,00000000,00000000
  packet: vFile:open:2f70726f632f73656c662f657865,00000000,00000000
response: F9
(lldb) script
>>> ret = lldb.SBCommandReturnObject()
>>> lldb.debugger.GetCommandInterpreter().HandleCommand(
...     "process plugin packet send vFile:pread:9,3E8,0", ret)
2
>>> ret.GetOutput()
'  packet: vFile:pread:9,3E8,0\nresponse: F3e8;\x7fELF\x02\x01\x01\n'
```
Notice how the response includes an ELF header, but the null bytes in the ELF data are lost/truncated, so the actual response cannot be fully parsed.

### Expected behavior
- `process plugin packet send` should return full response, not a null-terminated string
- Ideally, add an option like `-hex` to `process plugin packet send` so that the response is returned as a hexadecimal string

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

Reply via email to