summaryrefslogtreecommitdiff
path: root/devel/llvm60/files/lldb/patch-head-r332849.diff
diff options
context:
space:
mode:
Diffstat (limited to 'devel/llvm60/files/lldb/patch-head-r332849.diff')
-rw-r--r--devel/llvm60/files/lldb/patch-head-r332849.diff38
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;
+ }
+