[DEV] remove line in the backtrace on critical to start at the real critical position
This commit is contained in:
parent
3ad4738a3a
commit
87045cefae
13
etk/log.cpp
13
etk/log.cpp
@ -21,7 +21,7 @@
|
|||||||
#include <cxxabi.h>
|
#include <cxxabi.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#define MAX_DEPTH (256)
|
#define MAX_DEPTH (256)
|
||||||
void etk::log::displayBacktrace(bool _breakAtEnd) {
|
void etk::log::displayBacktrace(bool _breakAtEnd, int32_t _removeElement) {
|
||||||
// retrieve call-stack
|
// retrieve call-stack
|
||||||
void * trace[MAX_DEPTH];
|
void * trace[MAX_DEPTH];
|
||||||
int stack_depth = backtrace(trace, MAX_DEPTH);
|
int stack_depth = backtrace(trace, MAX_DEPTH);
|
||||||
@ -38,8 +38,11 @@
|
|||||||
if(status == 0 && demangled) {
|
if(status == 0 && demangled) {
|
||||||
symname = demangled;
|
symname = demangled;
|
||||||
}
|
}
|
||||||
TK_WARNING(" " << dlinfo.dli_fname << ": ");
|
if (_removeElement <= 0) {
|
||||||
TK_ERROR(" " << symname);
|
TK_WARNING(" " << dlinfo.dli_fname << ": ");
|
||||||
|
TK_ERROR(" " << symname);
|
||||||
|
}
|
||||||
|
_removeElement--;
|
||||||
if(NULL != demangled) {
|
if(NULL != demangled) {
|
||||||
free(demangled);
|
free(demangled);
|
||||||
}
|
}
|
||||||
@ -49,7 +52,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void etk::log::displayBacktrace(bool _breakAtEnd) {
|
void etk::log::displayBacktrace(bool _breakAtEnd, int32_t _removeElement) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
assert(false);
|
assert(false);
|
||||||
#endif
|
#endif
|
||||||
@ -380,7 +383,7 @@ void etk::log::logChar(int32_t _id, int32_t _level, int32_t _ligne, const char*
|
|||||||
#endif
|
#endif
|
||||||
g_lock.unlock();
|
g_lock.unlock();
|
||||||
if (_level == logLevelCritical) {
|
if (_level == logLevelCritical) {
|
||||||
displayBacktrace(true);
|
displayBacktrace(true, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ namespace etk {
|
|||||||
* @brief Display the current backtrace
|
* @brief Display the current backtrace
|
||||||
* @param[in] _breakAtEnd assert program when backtrace is printed
|
* @param[in] _breakAtEnd assert program when backtrace is printed
|
||||||
*/
|
*/
|
||||||
void displayBacktrace(bool _breakAtEnd = false);
|
void displayBacktrace(bool _breakAtEnd = false, int32_t _removeElement=0);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
#ifdef __class__
|
#ifdef __class__
|
||||||
|
Loading…
x
Reference in New Issue
Block a user