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;
}
|