mgorny updated this revision to Diff 197326. mgorny retitled this revision from "[lldb] [Process/NetBSD] Fix handling piod_len when reading memory" to "[lldb] [Process/NetBSD] Fix handling piod_len from PT_IO calls". mgorny edited the summary of this revision. mgorny added a comment.
Also included fixes for `WriteMemory()`. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D61310/new/ https://reviews.llvm.org/D61310 Files: lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp Index: lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp =================================================================== --- lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp +++ lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp @@ -695,10 +695,10 @@ io.piod_addr = dst + bytes_read; Status error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io); - if (error.Fail()) + if (error.Fail() || io.piod_len == 0) return error; - bytes_read = io.piod_len; + bytes_read += io.piod_len; io.piod_len = size - bytes_read; } while (bytes_read < size); @@ -723,10 +723,10 @@ io.piod_offs = (void *)(addr + bytes_written); Status error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io); - if (error.Fail()) + if (error.Fail() || io.piod_len == 0) return error; - bytes_written = io.piod_len; + bytes_written += io.piod_len; io.piod_len = size - bytes_written; } while (bytes_written < size);
Index: lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp =================================================================== --- lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp +++ lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp @@ -695,10 +695,10 @@ io.piod_addr = dst + bytes_read; Status error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io); - if (error.Fail()) + if (error.Fail() || io.piod_len == 0) return error; - bytes_read = io.piod_len; + bytes_read += io.piod_len; io.piod_len = size - bytes_read; } while (bytes_read < size); @@ -723,10 +723,10 @@ io.piod_offs = (void *)(addr + bytes_written); Status error = NativeProcessNetBSD::PtraceWrapper(PT_IO, GetID(), &io); - if (error.Fail()) + if (error.Fail() || io.piod_len == 0) return error; - bytes_written = io.piod_len; + bytes_written += io.piod_len; io.piod_len = size - bytes_written; } while (bytes_written < size);
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits