Next: Threads In Python, Previous: Inferiors In Python, Up: Python API
gdb provides a general event facility so that Python code can be notified of various state changes, particularly changes that occur in the inferior.
An event is just an object that describes some state change. The type of the object and its attributes will vary depending on the details of the change. All the existing events are described below.
In order to be notified of an event, you must register an event handler
with an event registry.  An event registry is an object in the
gdb.events module which dispatches particular events.  A registry
provides methods to register and unregister event handlers:
     
Here is an example:
     def exit_handler (event):
         print "event type: exit"
         print "exit code: %d" % (event.exit_code)
     
     gdb.events.exited.connect (exit_handler)
   In the above example we connect our handler exit_handler to the
registry events.exited.  Once connected, exit_handler gets
called when the inferior exits.  The argument event in this example is
of type gdb.ExitedEvent.  As you can see in the example the
ExitedEvent object has an attribute which indicates the exit code of
the inferior.
   
The following is a listing of the event registries that are available and details of the events they emit:
events.contgdb.ThreadEvent.
     Some events can be thread specific when gdb is running in non-stop
mode.  When represented in Python, these events all extend
gdb.ThreadEvent.  Note, this event is not emitted directly; instead,
events which are emitted by this or other modules might extend this event. 
Examples of these events are gdb.BreakpointEvent and
gdb.ContinueEvent.
          
Emits gdb.ContinueEvent which extends gdb.ThreadEvent.
     
This event indicates that the inferior has been continued after a stop. For
inherited attribute refer to gdb.ThreadEvent above.
     
events.exitedevents.ExitedEvent which indicates that the inferior has exited. 
events.ExitedEvent has two attributes:
          
     events.stopgdb.StopEvent which extends gdb.ThreadEvent.
     Indicates that the inferior has stopped.  All events emitted by this registry
extend StopEvent.  As a child of gdb.ThreadEvent, gdb.StopEvent
will indicate the stopped thread when gdb is running in non-stop
mode.  Refer to gdb.ThreadEvent above for more details.
     
Emits gdb.SignalEvent which extends gdb.StopEvent.
     
This event indicates that the inferior or one of its threads has received as
signal.  gdb.SignalEvent has the following attributes:
          
Also emits  gdb.BreakpointEvent which extends gdb.StopEvent.
     
gdb.BreakpointEvent event indicates that one or more breakpoints have
been hit, and has the following attributes:
          
A sequence containing references to all the breakpoints (type
gdb.Breakpoint) that were hit. See Breakpoints In Python, for details of thegdb.Breakpointobject.
events.new_objfilegdb.NewObjFileEvent which indicates that a new object file has
been loaded by gdb.  gdb.NewObjFileEvent has one attribute:
          A reference to the object file (
gdb.Objfile) which has been loaded. See Objfiles In Python, for details of thegdb.Objfileobject.