GDB (xrefs)
py-evts.c
Go to the documentation of this file.
1 /* Python interface to inferior events.
2 
3  Copyright (C) 2009-2015 Free Software Foundation, Inc.
4 
5  This file is part of GDB.
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #include "defs.h"
21 #include "py-events.h"
22 
23 #ifdef IS_PY3K
24 static struct PyModuleDef EventModuleDef =
25 {
26  PyModuleDef_HEAD_INIT,
27  "gdb.events",
28  NULL,
29  -1,
30  NULL,
31  NULL,
32  NULL,
33  NULL,
34  NULL
35 };
36 #endif
37 
38 /* Initialize python events. */
39 
42 {
43  int result;
44 
45  *registryp = create_eventregistry_object ();
46 
47  if (*registryp == NULL)
48  return -1;
49 
51  name,
52  (PyObject *)(*registryp));
53 }
54 
55 int
57 {
58 #ifdef IS_PY3K
59  gdb_py_events.module = PyModule_Create (&EventModuleDef);
60 #else
61  gdb_py_events.module = Py_InitModule ("events", NULL);
62 #endif
63 
64  if (!gdb_py_events.module)
65  return -1;
66 
67  if (add_new_registry (&gdb_py_events.stop, "stop") < 0)
68  return -1;
69 
70  if (add_new_registry (&gdb_py_events.cont, "cont") < 0)
71  return -1;
72 
73  if (add_new_registry (&gdb_py_events.exited, "exited") < 0)
74  return -1;
75 
77  "inferior_call") < 0)
78  return -1;
79 
81  "memory_changed") < 0)
82  return -1;
83 
85  "register_changed") < 0)
86  return -1;
87 
88  if (add_new_registry (&gdb_py_events.new_objfile, "new_objfile") < 0)
89  return -1;
90 
91  if (add_new_registry (&gdb_py_events.clear_objfiles, "clear_objfiles") < 0)
92  return -1;
93 
95  "events",
96  (PyObject *) gdb_py_events.module) < 0)
97  return -1;
98 
99  return 0;
100 }
int gdb_pymodule_addobject(PyObject *module, const char *name, PyObject *object)
Definition: py-utils.c:437
eventregistry_object * new_objfile
Definition: py-events.h:48
int gdbpy_initialize_py_events(void)
Definition: py-evts.c:56
PyObject * module
Definition: py-events.h:54
eventregistry_object * create_eventregistry_object(void)
eventregistry_object * memory_changed
Definition: py-events.h:51
eventregistry_object * register_changed
Definition: py-events.h:52
const char *const name
Definition: aarch64-tdep.c:68
eventregistry_object * stop
Definition: py-events.h:45
static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION add_new_registry(eventregistry_object **registryp, char *name)
Definition: py-evts.c:41
eventregistry_object * cont
Definition: py-events.h:46
#define CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION
events_object gdb_py_events
eventregistry_object * exited
Definition: py-events.h:47
eventregistry_object * clear_objfiles
Definition: py-events.h:49
PyObject * gdb_module
Definition: python.c:112
eventregistry_object * inferior_call
Definition: py-events.h:50