die strtok_r
[oweals/gnunet.git] / src / monkey / gnunet_monkey_action.h
1 /*
2       This file is part of GNUnet
3       (C) 2010, 2011 Christian Grothoff (and other contributing authors)
4
5       GNUnet is free software; you can redistribute it and/or modify
6       it under the terms of the GNU General Public License as published
7       by the Free Software Foundation; either version 3, or (at your
8       option) any later version.
9
10       GNUnet is distributed in the hope that it will be useful, but
11       WITHOUT ANY WARRANTY; without even the implied warranty of
12       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13       General Public License for more details.
14
15       You should have received a copy of the GNU General Public License
16       along with GNUnet; see the file COPYING.  If not, write to the
17       Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18       Boston, MA 02111-1307, USA.
19  */
20
21 /**
22  * @file monkey/gnunet_monkey_action.h
23  * @brief Monkey API for actions taken by Monkey while debugging
24  */
25
26 #ifndef GNUNET_MONKEY_ACTION_H
27 #define GNUNET_MONKEY_ACTION_H
28
29 #include "gdbmi.h"
30
31 #ifdef __cplusplus
32 extern "C"
33 {
34 #if 0                           /* keep Emacsens' auto-indent happy */
35 }
36 #endif
37 #endif
38
39
40 /**
41  * Context for the Action API
42  */
43 struct GNUNET_MONKEY_ACTION_Context
44 {
45         const char* binary_name;
46         int debug_mode;
47         char* debug_report;
48
49         /* gdb debugging attributes */
50         mi_stop* gdb_stop_reason;
51         mi_frames* gdb_frames;
52 };
53
54 int GNUNET_MONKEY_ACTION_report_file(struct GNUNET_MONKEY_ACTION_Context* cntxt, const char* dumpFileName);
55 int GNUNET_MONKEY_ACTION_report_email(struct GNUNET_MONKEY_ACTION_Context* cntxt);
56 int GNUNET_MONKEY_ACTION_rerun_with_valgrind();
57 int GNUNET_MONKEY_ACTION_rerun_with_gdb(struct GNUNET_MONKEY_ACTION_Context* cntxt);
58 int GNUNET_MONKEY_ACTION_format_report(struct GNUNET_MONKEY_ACTION_Context* cntxt);
59 int GNUNET_MONKEY_ACTION_check_bug_redundancy();
60
61
62 #if 0                           /* keep Emacsens' auto-indent happy */
63 {
64 #endif
65 #ifdef __cplusplus
66 }
67 #endif
68 #endif