OpenCores
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:

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.