MCPcopy Create free account
hub / github.com/F-Stack/f-stack / db_read_bytes

Function db_read_bytes

freebsd/arm/arm/db_interface.c:182–213  ·  view source on GitHub ↗

* Read bytes from kernel address space for debugger. */

(addr, size, data)

Source from the content-addressed store, hash-verified

180 * Read bytes from kernel address space for debugger.
181 */
182int
183db_read_bytes(addr, size, data)
184 vm_offset_t addr;
185 size_t size;
186 char *data;
187{
188 char *src = (char *)addr;
189
190 if (db_validate_address((u_int)src)) {
191 db_printf("address %p is invalid\n", src);
192 return (-1);
193 }
194
195 if (size == 4 && (addr & 3) == 0 && ((uintptr_t)data & 3) == 0) {
196 *((int*)data) = *((int*)src);
197 return (0);
198 }
199
200 if (size == 2 && (addr & 1) == 0 && ((uintptr_t)data & 1) == 0) {
201 *((short*)data) = *((short*)src);
202 return (0);
203 }
204
205 while (size-- > 0) {
206 if (db_validate_address((u_int)src)) {
207 db_printf("address %p is invalid\n", src);
208 return (-1);
209 }
210 *data++ = *src++;
211 }
212 return (0);
213}
214
215/*
216 * Write bytes to kernel address space for debugger.

Callers 2

db_branch_taken_read_intFunction · 0.70
db_get_valueFunction · 0.50

Calls 2

db_validate_addressFunction · 0.85
db_printfFunction · 0.85

Tested by

no test coverage detected