Всем привет
Является ли хорошей практикой использование инструментов вроде
Backward-cpp во время разработки приложений ? И имеют ли какие-либо неочевидные подводные камни ? (понятно, что имеется в виду компиляция с выключенным флагом оптимизации)
Также, в частности
Backward-cpp может навешивать колбэки на разные системные сигналы типа необработанного исключения или сегфолта
Использование на примере макроса assert'а:
// smartAssert.h
void smartAssert(bool expression)
{
if (expression)
return;
using namespace backward;
StackTrace stackTrace;
stackTrace.load_here(32);
Printer printer;
printer.object = true;
printer.color_mode = ColorMode::always;
printer.address = true;
printer.print(stackTrace, stdout);
}
// config.h
#ifdef DEBUG
# include "external/backward/backward.cpp"
#endif
#ifdef DEBUG
# include "SmartAssert.h"
# define SMART_ASSERT(expression) do { smartAssert(expression); } while (0)
#else
# define SMART_ASSERT(expression) do {} while (0)
#endif