Dump 256 bytes per chunk pointed by general-purpose registers.

Bug: 7216522
Change-Id: Iddcec8399b00ad411be6863dd866a3f74377ba03
This commit is contained in:
Ben Cheng 2012-09-24 14:13:37 -07:00
parent 96094ae27c
commit c47b772b67
1 changed files with 5 additions and 1 deletions

View File

@ -53,7 +53,8 @@ static void dump_memory(log_t* log, pid_t tid, uintptr_t addr, bool at_fault) {
/* catch underflow */
p = 0;
}
end = p + 80;
/* Dump more memory content for the crashing thread. */
end = p + 256;
/* catch overflow; 'end - p' has to be multiples of 16 */
while (end < p)
end -= 16;
@ -81,6 +82,8 @@ static void dump_memory(log_t* log, pid_t tid, uintptr_t addr, bool at_fault) {
long data = ptrace(PTRACE_PEEKTEXT, tid, (void*)p, NULL);
sprintf(code_buffer + strlen(code_buffer), "%08lx ", data);
/* Enable the following code blob to dump ASCII values */
#if 0
int j;
for (j = 0; j < 4; j++) {
/*
@ -95,6 +98,7 @@ static void dump_memory(log_t* log, pid_t tid, uintptr_t addr, bool at_fault) {
*asc_out++ = '.';
}
}
#endif
p += 4;
}
*asc_out = '\0';