X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fdebug.cpp;h=3026df09f203b005af601e954e77ca3ac98b9452;hb=cc2835392294fb1e82a89b2ec3803f78c9183f18;hp=92d93bacd75309a549197b3e2947df1e24a8f6fd;hpb=efeeb06418d044274e4f788557efd4d299a5c981;p=lyx.git diff --git a/src/support/debug.cpp b/src/support/debug.cpp index 92d93bacd7..3026df09f2 100644 --- a/src/support/debug.cpp +++ b/src/support/debug.cpp @@ -14,23 +14,14 @@ #include "support/convert.h" #include "support/debug.h" +#include "support/FileName.h" #include "support/gettext.h" #include "support/lstrings.h" -#include "support/FileName.h" #include "support/ProgressInterface.h" #include #include -//#define LYX_CALLSTACK_PRINTING -// must be linked with -rdynamic -#ifdef LYX_CALLSTACK_PRINTING -#include -#include -#include -#endif - - using namespace std; using namespace lyx::support; @@ -39,14 +30,14 @@ namespace lyx { namespace { -struct ErrorItem { +struct DebugErrorItem { Debug::Type level; char const * name; char const * desc; }; -ErrorItem errorTags[] = { +DebugErrorItem errorTags[] = { { Debug::NONE, "none", N_("No debugging messages")}, { Debug::INFO, "info", N_("General information")}, { Debug::INIT, "init", N_("Program initialisation")}, @@ -68,7 +59,7 @@ ErrorItem errorTags[] = { { Debug::INSETS, "insets", N_("LyX Insets")}, { Debug::FILES, "files", N_("Files used by LyX")}, { Debug::WORKAREA, "workarea", N_("Workarea events")}, - { Debug::INSETTEXT, "insettext", N_("Insettext/tabular messages")}, + { Debug::CLIPBOARD, "clipboard", N_("Clipboard handling")}, { Debug::GRAPHICS, "graphics", N_("Graphics conversion and loading")}, { Debug::CHANGES, "changes", N_("Change tracking")}, { Debug::EXTERNAL, "external", N_("External template/inset messages")}, @@ -86,7 +77,7 @@ ErrorItem errorTags[] = { int const numErrorTags = sizeof(errorTags)/sizeof(errorTags[0]); -} // namespace anon +} // namespace int Debug::levelCount() @@ -206,13 +197,27 @@ void LyXErr::endl() } +char const * LyXErr::stripName(char const * n) +{ + string const name = n; + // find the last occurence of /src/ in name + size_t pos = name.rfind("/src/"); + if (pos == string::npos) + pos = name.rfind("\\src\\"); + if (pos == string::npos) + return n; + else + return n + pos + 5; +} + + // It seems not possible to instantiate operator template out of class body template -LyXErr & toStream(LyXErr & l, T t) +LyXErr & toStream(LyXErr & l, T t) { if (l.enabled()){ l.stream() << t; - if (l.secondEnabled()) { + if (l.secondEnabled()) { l.secondStream() << t; ProgressInterface::instance()->lyxerrFlush(); } @@ -235,6 +240,12 @@ LyXErr & operator<<(LyXErr & l, long t) { return toStream(l, t); } LyXErr & operator<<(LyXErr & l, unsigned long t) { return toStream(l, t); } +#ifdef LYX_USE_LONG_LONG +LyXErr & operator<<(LyXErr & l, long long t) +{ return toStream(l, t); } +LyXErr & operator<<(LyXErr & l, unsigned long long t) +{ return toStream(l, t); } +#endif LyXErr & operator<<(LyXErr & l, double t) { return toStream(l, t); } LyXErr & operator<<(LyXErr & l, string const & t) @@ -253,22 +264,5 @@ LyXErr & operator<<(LyXErr & l, ios_base &(*t)(ios_base &)) LyXErr lyxerr; -void Debug::printCallStack() -{ -#ifdef LYX_CALLSTACK_PRINTING - const int depth = 50; - - // get void*'s for all entries on the stack - void* array[depth]; - size_t size = backtrace(array, depth); - - char** messages = backtrace_symbols(array, size); - - for (size_t i = 0; i < size && messages != NULL; i++) { - fprintf(stderr, "[LyX's bt]: (%d) %s\n", i, messages[i]); - } -#endif -} - } // namespace lyx