diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-02-04 19:23:22 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-02-04 19:23:22 +0100 |
| commit | f9d98f594a2b5103f0e88bf33191ad164a77c239 (patch) | |
| tree | 59edafbb544aef35be63dadf09e6e448e27afc6d /src/Backtrace/backtrace.c | |
| parent | b634e1a482f6871bb4e128f3bc23456f09f85547 (diff) | |
| parent | baacc3cadfd08293e6f46bd84ab322d0cb67bf10 (diff) | |
Merge branch 'master' into rhel6
Diffstat (limited to 'src/Backtrace/backtrace.c')
| -rw-r--r-- | src/Backtrace/backtrace.c | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/src/Backtrace/backtrace.c b/src/Backtrace/backtrace.c index b65216b..9b697da 100644 --- a/src/Backtrace/backtrace.c +++ b/src/Backtrace/backtrace.c @@ -129,32 +129,37 @@ static bool frame_is_noncrash_frame(struct frame *frame) if (!frame->sourcefile) return false; + /* GDK */ + if (0 == strcmp(frame->function, "gdk_x_error") + && 0 == strcmp(frame->sourcefile, "gdkmain-x11.c")) + return true; + + /* X.org */ if (0 == strcmp(frame->function, "_XReply") && 0 == strcmp(frame->sourcefile, "xcb_io.c")) return true; - if (0 == strcmp(frame->function, "_XError") && 0 == strcmp(frame->sourcefile, "XlibInt.c")) return true; - - if (0 == strcmp(frame->function, "gdk_x_error") - && 0 == strcmp(frame->sourcefile, "gdkmain-x11.c")) + if (0 == strcmp(frame->function, "XSync") + && 0 == strcmp(frame->sourcefile, "Sync.c")) + return true; + if (0 == strcmp(frame->function, "process_responses") + && 0 == strcmp(frame->sourcefile, "xcb_io.c")) return true; + /* glib */ if (0 == strcmp(frame->function, "IA__g_log") && 0 == strcmp(frame->sourcefile, "gmessages.c")) return true; - if (0 == strcmp(frame->function, "IA__g_logv") && 0 == strcmp(frame->sourcefile, "gmessages.c")) return true; - - if (0 == strcmp(frame->function, "process_responses") - && 0 == strcmp(frame->sourcefile, "xcb_io.c")) + if (0 == strcmp(frame->function, "IA__g_assertion_message") + && 0 == strcmp(frame->sourcefile, "gtestutils.c")) return true; - - if (0 == strcmp(frame->function, "XSync") - && 0 == strcmp(frame->sourcefile, "Sync.c")) + if (0 == strcmp(frame->function, "IA__g_assertion_message_expr") + && 0 == strcmp(frame->sourcefile, "gtestutils.c")) return true; /* DBus */ @@ -165,6 +170,20 @@ static bool frame_is_noncrash_frame(struct frame *frame) && 0 == strcmp(frame->sourcefile, "dbus-gobject.c")) return true; + /* libstdc++ */ + if (0 == strcmp(frame->function, "__gnu_cxx::__verbose_terminate_handler") + && NULL != strstr(frame->sourcefile, "/vterminate.cc")) + return true; + if (0 == strcmp(frame->function, "__cxxabiv1::__terminate") + && NULL != strstr(frame->sourcefile, "/eh_terminate.cc")) + return true; + if (0 == strcmp(frame->function, "std::terminate") + && NULL != strstr(frame->sourcefile, "/eh_terminate.cc")) + return true; + if (0 == strcmp(frame->function, "__cxxabiv1::__cxa_throw") + && NULL != strstr(frame->sourcefile, "/eh_throw.cc")) + return true; + return false; } |
