diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-08-26 12:25:06 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-08-26 12:25:06 +0200 |
commit | 6bfc7b600b276d4a6c139cdb6b0335ed572332f5 (patch) | |
tree | 831f170cb424e30b49d0d20b4d97a0fb6df8ea65 /doc/man | |
download | monkey-master.tar.gz monkey-master.zip |
Diffstat (limited to 'doc/man')
-rw-r--r-- | doc/man/man1/pathologist.1 | 21 | ||||
-rw-r--r-- | doc/man/man1/seaspider.1 | 15 | ||||
-rw-r--r-- | doc/man/man7/monkey.7 | 76 |
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 | ||
4 | pathologist \- 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 | ||
12 | With pathologist you can run an application and automatically generate a | ||
13 | bug report, if the programm crashes. Before you can use pathologist, | ||
14 | you first have to generate an expression database with seaspider. For more | ||
15 | information about how to use pathologist as part of the Monkey Debugging | ||
16 | System 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 | ||
4 | seaspider \- builds an expression database via static code analysis. | ||
5 | |||
6 | .SH SYNOPSIS | ||
7 | |||
8 | .SH DESCRIPTION | ||
9 | For more information about how to use the generated database with pathologist | ||
10 | as 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 | ||
4 | monkey \- An automated debugging tool. | ||
5 | |||
6 | .SH DESCRIPTION | ||
7 | .P | ||
8 | The Monkey Debugging System is a three part toolset for automtically generating | ||
9 | bug reports from program crashes. | ||
10 | .P | ||
11 | To allow automated crash analysis with pathologist, you first have to generate | ||
12 | an expression database with | ||
13 | .B seaspider(1) | ||
14 | . Seaspider will do some static code analysis and generate a sqlite database | ||
15 | file containing all the expressions in your source code. If you have | ||
16 | some variables in your source code which contain private information | ||
17 | of the user that must not be included in bug reports, you can specify | ||
18 | an ignore file which contains regular expressions to exclude those | ||
19 | variables from the database, and therefore prevent later appearance of | ||
20 | the private data in the bug report. | ||
21 | |||
22 | .P | ||
23 | After the expression database has been generated, you can ship this database | ||
24 | together 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, | ||
29 | a post-mortem analysis will be performed. The stack will be analyzed and all relevant | ||
30 | expressions in the stacktrace and other information about the crash will be evaluated and written to a bug report | ||
31 | in XML format. When the report has been succesfully written, Pathologist can | ||
32 | send the report to the developer via mail. | ||
33 | |||
34 | .P | ||
35 | The 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 | ||
38 | for the generated reports. | ||
39 | |||
40 | .SH REQUIREMENTS | ||
41 | .P | ||
42 | To use the Monkey Debugging System, you have to fulfill the following | ||
43 | requirements. | ||
44 | |||
45 | .P | ||
46 | Your project has to be written in C (C++ support is missing in Seaspider). | ||
47 | |||
48 | .P | ||
49 | To use Seaspider, your project has to be built with GNU Autotools. Other Build | ||
50 | Systems are not supported, but it should still be possible to use them as well, | ||
51 | if you can set the compiler and compiler options yourself. | ||
52 | |||
53 | .P | ||
54 | You need gdb in version 7 or later, and we have only tested the system on GNU/Linux. | ||
55 | |||
56 | .SH LIMITATIONS | ||
57 | .P | ||
58 | Pathologist can only (nicely) handle the following signals at this time: SIGSEGV (Segfault), | ||
59 | SIGABRT (Assertion), SIGBUS (Bad Memory Access), and SIGFPE (Arithmetic Exception). | ||
60 | |||
61 | .P | ||
62 | Your C source file names have to be globally unique in your project. | ||
63 | |||
64 | .P | ||
65 | Due to gdb changing the respective values on the stack while evaluating, | ||
66 | increments and decrements are problematic if contained in the line of code, | ||
67 | which causes the crash. Seaspider will just remove every single increment and | ||
68 | decrement operator before writing expressions to the database, so if your | ||
69 | program crashes on a line | ||
70 | .B a = b[++c]; | ||
71 | , the report will only contain the | ||
72 | value of | ||
73 | .B b[c] | ||
74 | . | ||
75 | |||
76 | |||