diff options
author | Phil Muldoon <pmuldoon@redhat.com> | 2010-06-28 21:16:04 +0000 |
---|---|---|
committer | Phil Muldoon <pmuldoon@redhat.com> | 2010-06-28 21:16:04 +0000 |
commit | 595939dea136aa2721a24e6a71edba78e80fb3f5 (patch) | |
tree | 2a3c77226eb99b4b603ecb343fb060aff873e84b /gdb/doc | |
parent | 4802450ac95e6cb976fa8b35f194f91a8a4fd4ea (diff) | |
download | gdb-595939dea136aa2721a24e6a71edba78e80fb3f5.zip gdb-595939dea136aa2721a24e6a71edba78e80fb3f5.tar.gz gdb-595939dea136aa2721a24e6a71edba78e80fb3f5.tar.bz2 |
2010-06-28 Phil Muldoon <pmuldoon@redhat.com>
Tom Tromey <tromey@redhat.com>
Thiago Jung Bauermann <bauerman@br.ibm.com>
* value.c (pack_unsigned_long): New function.
(value_from_ulongest): New function.
* value.h (value_from_ulongest): Declare.
* python/python.c (_initialize_python): Call
gdbpy_initialize_thread and gdbpy_initialize_inferior.
* python/python-internal.h: Define thread_object.
(gdbpy_inferiors, gdbpy_selected_thread)
(frame_info_to_frame_object, create_thread_object)
(find_thread_object, find_inferior_object)
(gdbpy_initialize_thread, gdbpy_initialize_inferiors)
(gdbpy_is_value_object, get_addr_from_python): Declare.
* python/py-value.c (builtin_type_upylong): Define.
(convert_value_from_python): Add logic for ulongest.
(gdbpy_is_value_object): New function.
* python/py-utils.c (get_addr_from_python): New function.
* python/py-frame.c (frame_info_to_frame_object): Return a PyObject.
(gdbpy_selected_frame): Use PyObject over frame_info.
* Makefile.in (SUBDIR_PYTHON_OBS): Add py-inferior and
py-infthread.
(SUBDIR_PYTHON_SRCS): Likewise.
(py-inferior.o): New Rule.
(py-infthread.o): New Rule.
* python/py-inferior.c: New File.
* python/py-infthread.c: New File.
2010-06-28 Phil Muldoon <pmuldoon@redhat.com>
Tom Tromey <tromey@redhat.com>
Thiago Jung Bauermann <bauerman@br.ibm.com>
* gdb.texinfo (Inferiors In Python): New node.
* gdb.texinfo (Threads In Python): New node.
2010-06-28 Phil Muldoon <pmuldoon@redhat.com>
Tom Tromey <tromey@redhat.com>
Thiago Jung Bauermann <bauerman@br.ibm.com>
* gdb.python/py-inferior.c: New File.
* gdb.python/py-infthread.c: New File.
* gdb.python/py-inferior.exp: New File.
* gdb.python/py-infthread.exp: New File.
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 128 |
2 files changed, 135 insertions, 0 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index e2130b7..88ddc16 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,10 @@ +2010-06-28 Phil Muldoon <pmuldoon@redhat.com> + Tom Tromey <tromey@redhat.com> + Thiago Jung Bauermann <bauerman@br.ibm.com> + + * gdb.texinfo (Inferiors In Python): New node. + * gdb.texinfo (Threads In Python): New node. + 2010-06-28 Joel Brobecker <brobecker@adacore.com> * gdb.texinfo (Python): Document what the python directory is diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index aac79f5..d09e79d 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -20182,6 +20182,8 @@ situation, a Python @code{KeyboardInterrupt} exception is thrown. * Pretty Printing API:: Pretty-printing values. * Selecting Pretty-Printers:: How GDB chooses a pretty-printer. * Disabling Pretty-Printers:: Disabling broken printers. +* Inferiors In Python:: Python representation of inferiors (processes) +* Threads In Python:: Accessing inferior threads from Python. * Commands In Python:: Implementing new commands in Python. * Parameters In Python:: Adding new @value{GDBN} parameters. * Functions In Python:: Writing new convenience functions. @@ -21008,6 +21010,132 @@ attribute to the registered function or callable object. If this attribute is present and its value is @code{False}, the printer is disabled, otherwise the printer is enabled. +@node Inferiors In Python +@subsubsection Inferiors In Python +@cindex inferiors in python + +@findex gdb.Inferior +Programs which are being run under @value{GDBN} are called inferiors +(@pxref{Inferiors and Programs}). Python scripts can access +information about and manipulate inferiors controlled by @value{GDBN} +via objects of the @code{gdb.Inferior} class. + +The following inferior-related functions are available in the @code{gdb} +module: + +@defun inferiors +Return a tuple containing all inferior objects. +@end defun + +A @code{gdb.Inferior} object has the following attributes: + +@table @code +@defivar Inferior num +ID of inferior, as assigned by GDB. +@end defivar + +@defivar Inferior pid +Process ID of the inferior, as assigned by the underlying operating +system. +@end defivar + +@defivar Inferior was_attached +Boolean signaling whether the inferior was created using `attach', or +started by @value{GDBN} itself. +@end defivar +@end table + +A @code{gdb.Inferior} object has the following methods: + +@table @code +@defmethod Inferior threads +This method returns a tuple holding all the threads which are valid +when it is called. If there are no valid threads, the method will +return an empty tuple. +@end defmethod + +@findex gdb.read_memory +@defmethod Inferior read_memory address length +Read @var{length} bytes of memory from the inferior, starting at +@var{address}. Returns a buffer object, which behaves much like an array +or a string. It can be modified and given to the @code{gdb.write_memory} +function. +@end defmethod + +@findex gdb.write_memory +@defmethod Inferior write_memory address buffer @r{[}length@r{]} +Write the contents of @var{buffer} to the inferior, starting at +@var{address}. The @var{buffer} parameter must be a Python object +which supports the buffer protocol, i.e., a string, an array or the +object returned from @code{gdb.read_memory}. If given, @var{length} +determines the number of bytes from @var{buffer} to be written. +@end defmethod + +@findex gdb.search_memory +@defmethod Inferior search_memory address length pattern +Search a region of the inferior memory starting at @var{address} with +the given @var{length} using the search pattern supplied in +@var{pattern}. The @var{pattern} parameter must be a Python object +which supports the buffer protocol, i.e., a string, an array or the +object returned from @code{gdb.read_memory}. Returns a Python @code{Long} +containing the address where the pattern was found, or @code{None} if +the pattern could not be found. +@end defmethod +@end table + +@node Threads In Python +@subsubsection Threads In Python +@cindex threads in python + +@findex gdb.InferiorThread +Python scripts can access information about, and manipulate inferior threads +controlled by @value{GDBN}, via objects of the @code{gdb.InferiorThread} class. + +The following thread-related functions are available in the @code{gdb} +module: + +@findex gdb.selected_thread +@defun selected_thread +This function returns the thread object for the selected thread. If there +is no selected thread, this will return @code{None}. +@end defun + +A @code{gdb.InferiorThread} object has the following attributes: + +@table @code +@defivar InferiorThread num +ID of the thread, as assigned by GDB. +@end defivar + +@defivar InferiorThread ptid +ID of the thread, as assigned by the operating system. This attribute is a +tuple containing three integers. The first is the Process ID (PID); the second +is the Lightweight Process ID (LWPID), and the third is the Thread ID (TID). +Either the LWPID or TID may be 0, which indicates that the operating system +does not use that identifier. +@end defivar +@end table + +A @code{gdb.InferiorThread} object has the following methods: + +@defmethod InferiorThread switch +This changes @value{GDBN}'s currently selected thread to the one represented +by this object. +@end defmethod + +@defmethod InferiorThread is_stopped +Return a Boolean indicating whether the thread is stopped. +@end defmethod + +@defmethod InferiorThread is_running +Return a Boolean indicating whether the thread is running. +@end defmethod + +@defmethod InferiorThread is_exited +Return a Boolean indicating whether the thread is exited. +@end defmethod +@end table + @node Commands In Python @subsubsection Commands In Python |