summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-01-22 16:59:41 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-01-22 16:59:41 +0100
commit86d7447c394c14dc1e46346b8cac5545e0817615 (patch)
tree21ef4cc0409889973ae3fdef463a0841f4d56bf4 /doc
parentec9dd4ff425aa3a2a956eb8baf73215eeb734d31 (diff)
downloadabrt-86d7447c394c14dc1e46346b8cac5545e0817615.tar.gz
abrt-86d7447c394c14dc1e46346b8cac5545e0817615.tar.xz
abrt-86d7447c394c14dc1e46346b8cac5545e0817615.zip
test commit to rhel6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/IMPLEMENTATION16
1 files changed, 8 insertions, 8 deletions
diff --git a/doc/IMPLEMENTATION b/doc/IMPLEMENTATION
index ae8ef71c..62ad5786 100644
--- a/doc/IMPLEMENTATION
+++ b/doc/IMPLEMENTATION
@@ -3,7 +3,7 @@ Implementation:
C/C++ handling:
==============
-we change /proc/sys/kernel/core_pattern to invoke abrtd helper to save
+we change /proc/sys/kernel/core_pattern to invoke abrtd helper to save
the coredump of crashing app:
* helper source code: http://git.fedorahosted.org/git/abrt.git?p=abrt.git;a=blob_plain;f=src/Hooks/abrt-hook-python.cpp
the code responsible for this:
@@ -16,7 +16,7 @@ the code responsible for this:
fOutCorePattern << CORE_PATTERN << endl;
fOutCorePattern.close();
}
-
+
%p - pid
%s - signal
%u - uid
@@ -24,7 +24,7 @@ the code responsible for this:
when some crash occurs abrt-hook-ccpp is invoked to store the coredump and some other info
read from /proc/<pid>/:
-executable:
+executable:
char buf[sizeof("/proc/%u/exe") + sizeof(int)*3];
sprintf(buf, "/proc/%u/exe", (int)pid);
readlink(buf);
@@ -32,7 +32,7 @@ executable:
cmdline:
char path[sizeof("/proc/%u/cmdline") + sizeof(int)*3];
sprintf(path, "/proc/%u/cmdline", (int)pid);
-
+
both is saved to file in /var/cache/abrt/ccpp-<time>-<pid> readable
only by owner the crashed process:
int fd = open(pPath, O_WRONLY | O_TRUNC | O_CREAT, 0666);
@@ -41,7 +41,7 @@ only by owner the crashed process:
n = write(fd, buf, count);
} while (n < 0 && errno == EINTR);
}
-
+
when the hook is done it signalize the daemon (be removing the lock file) and
daemon process the written info and saves some aditional information:
analyzer : name of the plugin used to analyze the crash (ccpp, python)
@@ -59,8 +59,8 @@ daemon process the written info and saves some aditional information:
1. uid of the app owner
2. package name
-This is all what happens when some app crashes, the next step is to process
-the coredump and extract the backtrace. This is done on user demand by calling
+This is all what happens when some app crashes, the next step is to process
+the coredump and extract the backtrace. This is done on user demand by calling
getReport(UUID) method or automatically if admin sets it in /etc/abrt/abrt.conf
* UUID is unique id of the crash in the database, every user is allowed to see only
his own crashes or kerneloops crashes
@@ -81,7 +81,7 @@ abrt-debuginfo-install is a shell script using elfutils to get build-ids from co
see http://git.fedorahosted.org/git/abrt.git?p=abrt.git;a=blob_plain;f=lib/Plugins/CCpp.cpp line 260
- gdb is run with the same privileges as the crashed app (setregid, setreuid)
d) BT is saved to same directory where the coredump is
-
+
Once the backtrace is processed all data from the /var/cache/abrt/ccpp-<time>-<pid> is sent
over dbus to the client and then user can edit the backtrace. When user is happy about
the report and command the client (gui, tui) to send the it, the client sends the data back