diff options
author | Zdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com> | 2009-04-08 13:44:35 +0200 |
---|---|---|
committer | Zdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com> | 2009-04-08 13:44:35 +0200 |
commit | 234a905fe548f73f5e1df0db5b3490ae9b00a9d5 (patch) | |
tree | 70dca16dbb78da5925a626890442b687b04a4f80 /src/Hooks | |
parent | 5c4a18fdd9795abaed59d3f5718d60cecde889ab (diff) | |
download | abrt-234a905fe548f73f5e1df0db5b3490ae9b00a9d5.tar.gz abrt-234a905fe548f73f5e1df0db5b3490ae9b00a9d5.tar.xz abrt-234a905fe548f73f5e1df0db5b3490ae9b00a9d5.zip |
renamed MW library
renamed Utils library
added check for plugins init method
renamed crash types
Diffstat (limited to 'src/Hooks')
-rw-r--r-- | src/Hooks/CCpp.cpp | 29 | ||||
-rw-r--r-- | src/Hooks/Makefile.am | 2 |
2 files changed, 20 insertions, 11 deletions
diff --git a/src/Hooks/CCpp.cpp b/src/Hooks/CCpp.cpp index b309414c..646beaff 100644 --- a/src/Hooks/CCpp.cpp +++ b/src/Hooks/CCpp.cpp @@ -32,14 +32,23 @@ #define FILENAME_EXECUTABLE "executable" #define FILENAME_CMDLINE "cmdline" +#define FILENAME_COREDUMP "coredump" -static void write_log(const char* pid) +static void write_success_log(const char* pid) { openlog("abrt", 0, LOG_DAEMON); syslog(LOG_WARNING, "CCpp Language Hook: Crashed pid: %s", pid); closelog(); } +static void write_faliure_log(const char* msg) +{ + openlog("abrt", 0, LOG_DAEMON); + syslog(LOG_WARNING, "CCpp Language Hook: Exception occur: %s", msg); + closelog(); +} + + char* get_executable(const char* pid) { char path[PATH_MAX]; @@ -88,13 +97,14 @@ int main(int argc, char** argv) const char* program_name = argv[0]; if (argc < 3) { - fprintf(stderr, "Usage: %s: <pid> <signal> <uid>\n", + fprintf(stderr, "Usage: %s: <dddir> <pid> <signal> <uid>\n", program_name); return -1; } - const char* pid = argv[1]; - const char* signal = argv[2]; - const char* uid = argv[3]; + const char* dddir = argv[1]; + const char* pid = argv[2]; + const char* signal = argv[3]; + const char* uid = argv[4]; if (strcmp(signal, "3") != 0 && // SIGQUIT strcmp(signal, "4") != 0 && // SIGILL @@ -125,16 +135,14 @@ int main(int argc, char** argv) throw std::string("Can not get proc info."); } - snprintf(path, sizeof(path), "%s/ccpp-%ld-%s", - DEBUG_DUMPS_DIR, time(NULL), pid); + snprintf(path, sizeof(path), "%s/ccpp-%ld-%s", dddir, time(NULL), pid); dd.Create(path); dd.SaveText(FILENAME_ANALYZER, "CCpp"); dd.SaveText(FILENAME_EXECUTABLE, executable); dd.SaveText(FILENAME_UID, uid); dd.SaveText(FILENAME_CMDLINE, cmdline); - snprintf(path + strlen(path), sizeof(path), "/%s", - FILENAME_BINARYDATA1); + snprintf(path + strlen(path), sizeof(path), "/%s", FILENAME_COREDUMP); if ((fp = fopen(path, "w")) == NULL) { @@ -158,11 +166,12 @@ int main(int argc, char** argv) free(cmdline); fclose(fp); dd.Close(); - write_log(pid); + write_success_log(pid); } catch (std::string sError) { fprintf(stderr, "%s: %s\n", program_name, sError.c_str()); + write_faliure_log(sError.c_str()); return -2; } return 0; diff --git a/src/Hooks/Makefile.am b/src/Hooks/Makefile.am index 2e682f57..48d34e84 100644 --- a/src/Hooks/Makefile.am +++ b/src/Hooks/Makefile.am @@ -2,6 +2,6 @@ libexec_PROGRAMS = hookCCpp # CCpp hookCCpp_SOURCES = CCpp.cpp -hookCCpp_LDADD = ../../lib/Utils/libUtils.la +hookCCpp_LDADD = ../../lib/Utils/libABRTUtils.la hookCCpp_CPPFLAGS = -I$(srcdir)/../../lib/Utils \ -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" |