1. 程式人生 > >【Linux c】大型專案的除錯技巧

【Linux c】大型專案的除錯技巧

巧妙利用列印資訊:

直接在函式裡面呼叫void print_trace(),就可以找到呼叫它的函式的層級關係
printf("!!!!!%s,%s,%d\n", __FILE__,__FUNCTION__, __LINE__);
printf("!!!!!test->num_streams%d\n", test->num_streams);

void print_trace(void)
{
    void *array[10];
    size_t size;
    char **strings;
    size_t i;

    size = backtrace (array, 10);
    strings = backtrace_symbols (array, size);
    if (NULL == strings)
    {
        perror("backtrace_synbols");
        exit(0);
    }

    printf ("Obtained %zd stack frames.\n", size);

    for (i = 0; i < size; i++)
        printf ("%s\n", strings[i]);

    free (strings);
    strings = NULL;
}

void print_trace(void);

直接在函式裡面呼叫void print_trace(),就可以找到呼叫它的函式的層級關係