labath added a comment. Thinking about tests, do you know of any way to create memory which is readable by ptrace, but it is not accessible via process_vm_readv ? I know that latest android phones have memory like that, but I believe this depends on selinux or some other mechanism which cannot be reproduced in a test.
If we can't do anything like that, we should at least have an lldb-server test that performs a read (`$m` packet) crossing page boundaries, where one of the pages is unmapped. Probably the easiest way to guarantee that a particular page will be unmapped is to first `mmap` 2 pages worth of memory, and then `munmap` one of them. ================ Comment at: lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp:1457 - bytes_read = process_vm_readv(pid, &local_iov, 1, &remote_iov, 1, 0); - const bool success = bytes_read == size; + auto vm_bytes_read = + process_vm_readv(pid, &local_iov, 1, &remote_iov, 1, 0); ---------------- llvm's policy is to *not* "almost always use auto". And it's nice to know whether this returns size_t, ssize_t, or something else without looking up the documentation. ================ Comment at: lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp:1467 + if (!success) { + addr = reinterpret_cast<addr_t>(reinterpret_cast<char *>(addr) + + vm_bytes_read); ---------------- `addr += vm_bytes_read` ? Since this is talking about addresses in the other process, I can't imagine that casting to a `char *` is going to make this more "correct" in any way. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D62715/new/ https://reviews.llvm.org/D62715 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits