aboutsummaryrefslogtreecommitdiffstats
path: root/devel/llvm60/files/lldb/patch-head-r332849.diff
blob: ced3a7a803199605b03d212f7dd64def57303bfe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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;
 }