summaryrefslogtreecommitdiffstats
path: root/src/Hooks
diff options
context:
space:
mode:
authorZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-04-08 13:44:35 +0200
committerZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-04-08 13:44:35 +0200
commit234a905fe548f73f5e1df0db5b3490ae9b00a9d5 (patch)
tree70dca16dbb78da5925a626890442b687b04a4f80 /src/Hooks
parent5c4a18fdd9795abaed59d3f5718d60cecde889ab (diff)
downloadabrt-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.cpp29
-rw-r--r--src/Hooks/Makefile.am2
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)\"