URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 1541 to Rev 1542
- ↔ Reverse comparison
Rev 1541 → Rev 1542
/trunk/or1ksim/cpu/or32/dyn_rec.c
300,7 → 300,7
if(!sigsegv_state) { |
sigsegv_addr = siginf->si_addr; |
} else { |
printf("Nested SIGSEGV occured, dumping next chuck of info\n"); |
fprintf(stderr, "Nested SIGSEGV occured, dumping next chuck of info\n"); |
sigsegv_state++; |
} |
|
307,14 → 307,14
/* First dump all the data that does not need dereferenceing to get */ |
switch(sigsegv_state) { |
case 0: |
fflush(stdout); |
printf("Segmentation fault at %p (or address: 0x%"PRIxADDR")\n\n", |
sigsegv_addr, get_pc()); |
fflush(stderr); |
fprintf(stderr, "Segmentation fault on acces to %p (or address: 0x%"PRIxADDR")\n\n", |
sigsegv_addr, get_pc()); |
sigsegv_state++; |
case 1: |
/* Run through the recompiled pages, dumping them to disk as we go */ |
for(dp = cpu_state.dyn_pages; dp; dp = dp->next) { |
printf("Dumping%s page 0x%"PRIxADDR" recompiled to %p (len: %u) to disk\n", |
fprintf(stderr, "Dumping%s page 0x%"PRIxADDR" recompiled to %p (len: %u) to disk\n", |
dp->dirty ? " dirty" : "", dp->or_page, dp->host_page, |
dp->host_len); |
fflush(stdout); |
334,8 → 334,8
sigsegv_state++; |
case 2: |
/* Dump the contents of the stack */ |
printf("Stack dump: "); |
fflush(stdout); |
fprintf(stderr, "Stack dump: "); |
fflush(stderr); |
|
num_trace = backtrace(trace, 10); |
|
342,17 → 342,17
trace_names = backtrace_symbols(trace, num_trace); |
|
stack = get_sp(); |
printf("(of stack at %p, base: %p)\n", stack, rec_stack_base); |
fflush(stdout); |
fprintf(stderr, "(of stack at %p, base: %p)\n", stack, rec_stack_base); |
fflush(stderr); |
for(i = 0; stack < rec_stack_base; i++, stack += 4) { |
printf(" <%i> 0x%08x", i, *(uint32_t *)stack); |
fprintf(stderr, " <%i> 0x%08x", i, *(uint32_t *)stack); |
/* Try to find a symbolic name with this entry */ |
for(j = 0; j < num_trace; j++) { |
if(trace[j] == *(void **)stack) |
printf(" <%s>", trace_names[j]); |
fprintf(stderr, " <%s>", trace_names[j]); |
} |
printf("\n"); |
fflush(stdout); |
fprintf(stderr, "\n"); |
fflush(stderr); |
} |
sigsegv_state++; |
case 3: |