diff options
author | Karel Klic <kklic@redhat.com> | 2010-01-13 14:21:20 +0100 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2010-01-13 14:21:20 +0100 |
commit | df1d7cd05d8f6abba8c713e773828deee19baf22 (patch) | |
tree | 6f789457345c9c3a076a5bc3e8c2657a674dff61 /lib | |
parent | 745c2265e8e2c1c76288900811696478f0b04cfd (diff) | |
download | abrt-df1d7cd05d8f6abba8c713e773828deee19baf22.tar.gz abrt-df1d7cd05d8f6abba8c713e773828deee19baf22.tar.xz abrt-df1d7cd05d8f6abba8c713e773828deee19baf22.zip |
Better error messages for abrt-backtrace execution
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Plugins/CCpp.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp index 6c200d01..e0db9cf9 100644 --- a/lib/Plugins/CCpp.cpp +++ b/lib/Plugins/CCpp.cpp @@ -621,13 +621,29 @@ string CAnalyzerCCpp::GetGlobalUUID(const char *pDebugDumpDir) { perror_msg("abrt-backtrace not executed properly, " "status: %x signal: %d", status, WIFSIGNALED(status)); - } else + } + else { int exit_status = WEXITSTATUS(status); - if (exit_status != 0) + if (exit_status == 79) /* EX_PARSINGFAILED */ + { + /* abrt-backtrace returns alternative backtrace + representation in this case, so everything will work + as expected except worse duplication detection */ + log_msg("abrt-backtrace failed to parse the backtrace"); + } + else if (exit_status == 80) /* EX_THREADDETECTIONFAILED */ + { + /* abrt-backtrace returns backtrace with all threads + in this case, so everything will work as expected + except worse duplication detection */ + log_msg("abrt-backtrace failed to determine crash frame"); + } + else if (exit_status != 0) { + /* this is unexpected problem and it should be investigated */ error_msg("abrt-backtrace run failed, exit value: %d", - exit_status); + exit_status); } } |