Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/generic/stacktrace.c

    re515b21a r47246f4  
    11/*
    22 * Copyright (c) 2009 Jakub Jermar
    3  * Copyright (c) 2010 Jiri Svoboda
    43 * All rights reserved.
    54 *
     
    3736#include <stdio.h>
    3837#include <sys/types.h>
    39 #include <errno.h>
    4038
    41 static int stacktrace_read_uintptr(void *arg, uintptr_t addr, uintptr_t *data);
    42 
    43 void stacktrace_print_fp_pc(uintptr_t fp, uintptr_t pc)
     39void stack_trace_fp_pc(uintptr_t fp, uintptr_t pc)
    4440{
    45         stacktrace_t st;
    46         uintptr_t nfp;
    47 
    48         st.op_arg = NULL;
    49         st.read_uintptr = stacktrace_read_uintptr;
    50 
    51         while (stacktrace_fp_valid(&st, fp)) {
     41        printf("Printing stack trace:\n");
     42        printf("=====================\n");
     43        while (frame_pointer_validate(fp)) {
    5244                printf("%p: %p()\n", fp, pc);
    53                 (void) stacktrace_ra_get(&st, fp, &pc);
    54                 (void) stacktrace_fp_prev(&st, fp, &nfp);
    55                 fp = nfp;
     45                pc = return_address_get(fp);
     46                fp = frame_pointer_prev(fp);
    5647        }
     48        printf("=====================\n");
    5749}
    5850
    59 void stacktrace_print(void)
     51void stack_trace(void)
    6052{
    61         stacktrace_prepare();
    62         stacktrace_print_fp_pc(stacktrace_fp_get(), stacktrace_pc_get());
    63         /*
    64          * Prevent the tail call optimization of the previous call by
    65          * making it a non-tail call.
    66          */
    67         (void) stacktrace_fp_get();
    68 }
    69 
    70 static int stacktrace_read_uintptr(void *arg, uintptr_t addr, uintptr_t *data)
    71 {
    72         (void) arg;
    73         *data = *((uintptr_t *) addr);
    74         return EOK;
     53        stack_trace_fp_pc(frame_pointer_get(), program_counter_get());
    7554}
    7655
Note: See TracChangeset for help on using the changeset viewer.