diff options
Diffstat (limited to 'devel/llvm60/files/lldb/patch-head-r332849.diff')
-rw-r--r-- | devel/llvm60/files/lldb/patch-head-r332849.diff | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/devel/llvm60/files/lldb/patch-head-r332849.diff b/devel/llvm60/files/lldb/patch-head-r332849.diff new file mode 100644 index 000000000000..ced3a7a80319 --- /dev/null +++ b/devel/llvm60/files/lldb/patch-head-r332849.diff @@ -0,0 +1,38 @@ +r332849 | emaste | 2018-04-21 02:34:46 +0200 (Sat, 21 Apr 2018) | 20 lines + +lldb: propagate error to user if memory read fails + +Previously, an attempt to read an unreadable access reported zeros: + +(lldb) memory read -format hex -size 8 0 +0x00000000: 0x0000000000000000 0x0000000000000000 +0x00000010: 0x0000000000000000 0x0000000000000000 +... + +Now, if DoReadMemory encounters error then return 0 (bytes read) so we +report the error to the user: + +(lldb) memory read -format hex -size 8 0 +error: Bad address + +LLVM PR: 37190 + +MFC after: 1 week +Sponsored by: The FreeBSD Foundation + +Index: tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp +=================================================================== +--- tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp (revision 332848) ++++ tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp (revision 332849) +@@ -163,8 +163,10 @@ static size_t DoReadMemory(lldb::pid_t pid, lldb:: + pi_desc.piod_addr = buf; + pi_desc.piod_len = size; + +- if (PTRACE(PT_IO, pid, (caddr_t)&pi_desc, 0) < 0) ++ if (PTRACE(PT_IO, pid, (caddr_t)&pi_desc, 0) < 0) { + error.SetErrorToErrno(); ++ return 0; ++ } + return pi_desc.piod_len; + } + |