Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: gdb/python/py-stopevent.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/python/py-stopevent.h ('k') | gdb/python/py-symbol.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Python interface to inferior stop events. 1 /* Python interface to inferior stop events.
2 2
3 Copyright (C) 2009-2012 Free Software Foundation, Inc. 3 Copyright (C) 2009-2012 Free Software Foundation, Inc.
4 4
5 This file is part of GDB. 5 This file is part of GDB.
6 6
7 This program is free software; you can redistribute it and/or modify 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 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 9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
(...skipping 24 matching lines...) Expand all
35 } 35 }
36 36
37 /* Callback observers when a stop event occurs. This function will create a 37 /* Callback observers when a stop event occurs. This function will create a
38 new Python stop event object. If only a specific thread is stopped the 38 new Python stop event object. If only a specific thread is stopped the
39 thread object of the event will be set to that thread. Otherwise, if all 39 thread object of the event will be set to that thread. Otherwise, if all
40 threads are stopped thread object will be set to None. 40 threads are stopped thread object will be set to None.
41 return 0 if the event was created and emitted successfully otherwise 41 return 0 if the event was created and emitted successfully otherwise
42 returns -1. */ 42 returns -1. */
43 43
44 int 44 int
45 emit_stop_event (struct bpstats *bs, enum target_signal stop_signal) 45 emit_stop_event (struct bpstats *bs, enum gdb_signal stop_signal)
46 { 46 {
47 PyObject *stop_event_obj = NULL; /* Appease GCC warning. */ 47 PyObject *stop_event_obj = NULL; /* Appease GCC warning. */
48 PyObject *list = NULL; 48 PyObject *list = NULL;
49 PyObject *first_bp = NULL; 49 PyObject *first_bp = NULL;
50 struct bpstats *current_bs; 50 struct bpstats *current_bs;
51 51
52 if (evregpy_no_listeners_p (gdb_py_events.stop)) 52 if (evregpy_no_listeners_p (gdb_py_events.stop))
53 return 0; 53 return 0;
54 54
55 /* Add any breakpoint set at this location to the list. */ 55 /* Add any breakpoint set at this location to the list. */
(...skipping 21 matching lines...) Expand all
77 } 77 }
78 78
79 if (list != NULL) 79 if (list != NULL)
80 { 80 {
81 stop_event_obj = create_breakpoint_event_object (list, first_bp); 81 stop_event_obj = create_breakpoint_event_object (list, first_bp);
82 if (!stop_event_obj) 82 if (!stop_event_obj)
83 goto fail; 83 goto fail;
84 } 84 }
85 85
86 /* Check if the signal is "Signal 0" or "Trace/breakpoint trap". */ 86 /* Check if the signal is "Signal 0" or "Trace/breakpoint trap". */
87 if (stop_signal != TARGET_SIGNAL_0 87 if (stop_signal != GDB_SIGNAL_0
88 && stop_signal != TARGET_SIGNAL_TRAP) 88 && stop_signal != GDB_SIGNAL_TRAP)
89 { 89 {
90 stop_event_obj = 90 stop_event_obj =
91 create_signal_event_object (stop_signal); 91 create_signal_event_object (stop_signal);
92 if (!stop_event_obj) 92 if (!stop_event_obj)
93 goto fail; 93 goto fail;
94 } 94 }
95 95
96 /* If all fails emit an unknown stop event. All event types should 96 /* If all fails emit an unknown stop event. All event types should
97 be known and this should eventually be unused. */ 97 be known and this should eventually be unused. */
98 if (!stop_event_obj) 98 if (!stop_event_obj)
99 { 99 {
100 stop_event_obj = create_stop_event_object (&stop_event_object_type); 100 stop_event_obj = create_stop_event_object (&stop_event_object_type);
101 if (!stop_event_obj) 101 if (!stop_event_obj)
102 goto fail; 102 goto fail;
103 } 103 }
104 104
105 return evpy_emit_event (stop_event_obj, gdb_py_events.stop); 105 return evpy_emit_event (stop_event_obj, gdb_py_events.stop);
106 106
107 fail: 107 fail:
108 Py_XDECREF (list); 108 Py_XDECREF (list);
109 return -1; 109 return -1;
110 } 110 }
111 111
112 GDBPY_NEW_EVENT_TYPE (stop, 112 GDBPY_NEW_EVENT_TYPE (stop,
113 "gdb.StopEvent", 113 "gdb.StopEvent",
114 "StopEvent", 114 "StopEvent",
115 "GDB stop event object", 115 "GDB stop event object",
116 thread_event_object_type, 116 thread_event_object_type,
117 /*no qual*/); 117 /*no qual*/);
OLDNEW
« no previous file with comments | « gdb/python/py-stopevent.h ('k') | gdb/python/py-symbol.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698