aboutsummaryrefslogtreecommitdiff
path: root/doc/man
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-08-26 12:25:06 +0200
committerChristian Grothoff <christian@grothoff.org>2021-08-26 12:25:06 +0200
commit6bfc7b600b276d4a6c139cdb6b0335ed572332f5 (patch)
tree831f170cb424e30b49d0d20b4d97a0fb6df8ea65 /doc/man
downloadmonkey-master.tar.gz
monkey-master.zip
-recoveredHEADmaster
Diffstat (limited to 'doc/man')
-rw-r--r--doc/man/man1/pathologist.121
-rw-r--r--doc/man/man1/seaspider.115
-rw-r--r--doc/man/man7/monkey.776
3 files changed, 112 insertions, 0 deletions
diff --git a/doc/man/man1/pathologist.1 b/doc/man/man1/pathologist.1
new file mode 100644
index 0000000..1fceff8
--- /dev/null
+++ b/doc/man/man1/pathologist.1
@@ -0,0 +1,21 @@
1.TH pathologist 1 2013-03-01 "Monkey Debugging System" "Version 0.1"
2
3.SH NAME
4pathologist \- Automatically generates bug reports.
5
6.SH SYNOPSIS
7.B pathologist -d FILE [ options ] [ -- ] BINARY
8.br
9.B pathologist -h | -v
10
11.SH DESCRIPTION
12With pathologist you can run an application and automatically generate a
13bug report, if the programm crashes. Before you can use pathologist,
14you first have to generate an expression database with seaspider. For more
15information about how to use pathologist as part of the Monkey Debugging
16System see
17.B monkey(7)
18.\.
19
20
21.SH OPTIONS
diff --git a/doc/man/man1/seaspider.1 b/doc/man/man1/seaspider.1
new file mode 100644
index 0000000..e247883
--- /dev/null
+++ b/doc/man/man1/seaspider.1
@@ -0,0 +1,15 @@
1.TH seaspider 1 2013-03-01 "Monkey Debugging System" "Version 0.1"
2
3.SH NAME
4seaspider \- builds an expression database via static code analysis.
5
6.SH SYNOPSIS
7
8.SH DESCRIPTION
9For more information about how to use the generated database with pathologist
10as part of the Monkey Debugging System see
11.B monkey(7)
12.\.
13
14
15.SH OPTIONS
diff --git a/doc/man/man7/monkey.7 b/doc/man/man7/monkey.7
new file mode 100644
index 0000000..9087f8a
--- /dev/null
+++ b/doc/man/man7/monkey.7
@@ -0,0 +1,76 @@
1.TH monkey 7 2013-03-01 "Monkey Debugging System" "Version 0.1"
2
3.SH NAME
4monkey \- An automated debugging tool.
5
6.SH DESCRIPTION
7.P
8The Monkey Debugging System is a three part toolset for automtically generating
9bug reports from program crashes.
10.P
11To allow automated crash analysis with pathologist, you first have to generate
12an expression database with
13.B seaspider(1)
14. Seaspider will do some static code analysis and generate a sqlite database
15file containing all the expressions in your source code. If you have
16some variables in your source code which contain private information
17of the user that must not be included in bug reports, you can specify
18an ignore file which contains regular expressions to exclude those
19variables from the database, and therefore prevent later appearance of
20the private data in the bug report.
21
22.P
23After the expression database has been generated, you can ship this database
24together with your application. On the target system, the user can then use
25.B pathologist(1)
26, to run your application under supervision using
27.B gdb(1)
28. If the application crashes,
29a post-mortem analysis will be performed. The stack will be analyzed and all relevant
30expressions in the stacktrace and other information about the crash will be evaluated and written to a bug report
31in XML format. When the report has been succesfully written, Pathologist can
32send the report to the developer via mail.
33
34.P
35The third component of the monkey debugging system is the
36.B entomologist(1)
37, which is not yet functional. The Entomologist but will provide comparison and clustering algorithms
38for the generated reports.
39
40.SH REQUIREMENTS
41.P
42To use the Monkey Debugging System, you have to fulfill the following
43requirements.
44
45.P
46Your project has to be written in C (C++ support is missing in Seaspider).
47
48.P
49To use Seaspider, your project has to be built with GNU Autotools. Other Build
50Systems are not supported, but it should still be possible to use them as well,
51if you can set the compiler and compiler options yourself.
52
53.P
54You need gdb in version 7 or later, and we have only tested the system on GNU/Linux.
55
56.SH LIMITATIONS
57.P
58Pathologist can only (nicely) handle the following signals at this time: SIGSEGV (Segfault),
59SIGABRT (Assertion), SIGBUS (Bad Memory Access), and SIGFPE (Arithmetic Exception).
60
61.P
62Your C source file names have to be globally unique in your project.
63
64.P
65Due to gdb changing the respective values on the stack while evaluating,
66increments and decrements are problematic if contained in the line of code,
67which causes the crash. Seaspider will just remove every single increment and
68decrement operator before writing expressions to the database, so if your
69program crashes on a line
70.B a = b[++c];
71, the report will only contain the
72value of
73.B b[c]
74.
75
76