summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2010-02-04 14:54:50 +0100
committerKarel Klic <kklic@redhat.com>2010-02-04 14:54:50 +0100
commit16139497c7884fa3304ad66c35a0570d6a20db7a (patch)
treea2b6c17a61d21562c018f82497a412cba1a2a111 /src
parentb0b94006fe549455cf6afeb69c7c800f616e326b (diff)
downloadabrt-16139497c7884fa3304ad66c35a0570d6a20db7a.tar.gz
abrt-16139497c7884fa3304ad66c35a0570d6a20db7a.tar.xz
abrt-16139497c7884fa3304ad66c35a0570d6a20db7a.zip
Added some more noncrash frames.
Diffstat (limited to 'src')
-rw-r--r--src/Backtrace/backtrace.c41
1 files changed, 30 insertions, 11 deletions
diff --git a/src/Backtrace/backtrace.c b/src/Backtrace/backtrace.c
index b65216b4..9b697da1 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;
}