Skip to content

Commit

Permalink
Fix crash reporting on x86 platform.
Browse files Browse the repository at this point in the history
Make sure that crash frame gets printed in one line

Change-Id: If097a5a1655b17165b2a3271f0f5ee8ace57686f
  • Loading branch information
Vladimir Chtchetkine committed Jun 7, 2011
1 parent 06fcf93 commit 714d9de
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions debuggerd/x86/unwind.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,18 @@ int unwind_backtrace_with_ptrace_x86(int tfd, pid_t pid, mapinfo *map,

//ebp==0, it indicates that the stack is poped to the bottom or there is no stack at all.
while (ebp) {
_LOG(tfd, !at_fault, "#0%d ",stack_level);
mi = pc_to_mapinfo(map, eip, &rel_pc);

/* See if we can determine what symbol this stack frame resides in */
if (mi != 0 && mi->symbols != 0) {
sym = symbol_table_lookup(mi->symbols, rel_pc);
}
if (sym) {
_LOG(tfd, !at_fault, " eip: %08x %s (%s)\n", eip, mi ? mi->name : "", sym->name);
_LOG(tfd, !at_fault, " #%02d eip: %08x %s (%s)\n",
stack_level, eip, mi ? mi->name : "", sym->name);
} else {
_LOG(tfd, !at_fault, " eip: %08x %s\n", eip, mi ? mi->name : "");
_LOG(tfd, !at_fault, " #%02d eip: %08x %s\n",
stack_level, eip, mi ? mi->name : "");
}

stack_level++;
Expand All @@ -49,7 +50,6 @@ int unwind_backtrace_with_ptrace_x86(int tfd, pid_t pid, mapinfo *map,
if (ebp)
_LOG(tfd, !at_fault, "stack: \n");
while (ebp) {
_LOG(tfd, !at_fault, "#0%d \n",stack_level);
stack_ptr = cur_sp;
while((int)(ebp - stack_ptr) >= 0) {
stack_content = ptrace(PTRACE_PEEKTEXT, pid, (void*)stack_ptr, NULL);
Expand All @@ -60,10 +60,11 @@ int unwind_backtrace_with_ptrace_x86(int tfd, pid_t pid, mapinfo *map,
sym = symbol_table_lookup(mi->symbols, rel_pc);
}
if (sym) {
_LOG(tfd, !at_fault, " %08x %08x %s (%s)\n",
stack_ptr, stack_content, mi ? mi->name : "", sym->name);
_LOG(tfd, !at_fault, " #%02d %08x %08x %s (%s)\n",
stack_level, stack_ptr, stack_content, mi ? mi->name : "", sym->name);
} else {
_LOG(tfd, !at_fault, " %08x %08x %s\n", stack_ptr, stack_content, mi ? mi->name : "");
_LOG(tfd, !at_fault, " #%02d %08x %08x %s\n",
stack_level, stack_ptr, stack_content, mi ? mi->name : "");
}

stack_ptr = stack_ptr + 4;
Expand Down

0 comments on commit 714d9de

Please sign in to comment.