【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(),就可以找到调用它的函数的层级关系


阅读更多

没有更多推荐了,返回首页