2016-07-18 6 views
0

Использование Log4CXX_ERROR Я могу напечатать e.what().Исключить ошибку log4CXX stacktrace

catch (const std::exception e) 
{ 
    logger->error("exception:" << e.what()); 
    //logger->error("exception:" << e); //not allowed 
} 

Как распечатать трассировку стека исключений с помощью log4cxx?

ответ

0

First Добавить функцию обработчика:

void trace() { 
    void *array[20]; 
    size_t size; 

    /* store up to 20 return address of the current program state in array 
     and return the exact number of values stored */ 
    size = (size_t)backtrace(array, 20); 

    /* return names of functions from the backtrace list in array and 
     write result immediately to stderr */ 
    backtrace_symbols_fd(array, size, STDERR_FILENO); 
} 

и затем вызвать эту функцию, чтобы сбросить трассировки стека на STDERR.

 Смежные вопросы

  • Нет связанных вопросов^_^