Add basic Python API for convenience variables

This adds a basic Python API for accessing convenience variables.
With this, convenience variables can be read and set from Python.
Although gdb supports convenience variables whose value changes at
each call, this is not exposed to Python; it could be, but I think
it's just as good to write a convenience function in this situation.

This is PR python/23080.

Tested on x86-64 Fedora 26.

2018-04-22  Tom Tromey  <tom@tromey.com>

	PR python/23080:
	* NEWS: Update for new functions.
	* python/py-value.c (gdbpy_set_convenience_variable)
	(gdbpy_convenience_variable): New functions.
	* python/python-internal.h (gdbpy_convenience_variable)
	(gdbpy_set_convenience_variable): Declare.
	* python/python.c (python_GdbMethods): Add convenience_variable,
	set_convenience_variable.

doc/ChangeLog
2018-04-22  Tom Tromey  <tom@tromey.com>

	PR python/23080:
	* python.texi (Basic Python): Document gdb.convenience_variable,
	gdb.set_convenience_variable.

testsuite/ChangeLog
2018-04-22  Tom Tromey  <tom@tromey.com>

	PR python/23080:
	* gdb.python/python.exp: Add convenience variable tests.
This commit is contained in:
Tom Tromey
2018-04-22 15:13:09 -06:00
parent 8a60efe714
commit 7729052b53
6 changed files with 132 additions and 2 deletions

View File

@ -2132,6 +2132,14 @@ Return a tuple containing all inferiors." },
Invalidate any cached frame objects in gdb.\n\
Intended for internal use only." },
{ "convenience_variable", gdbpy_convenience_variable, METH_VARARGS,
"convenience_variable (NAME) -> value.\n\
Return the value of the convenience variable $NAME,\n\
or None if not set." },
{ "set_convenience_variable", gdbpy_set_convenience_variable, METH_VARARGS,
"convenience_variable (NAME, VALUE) -> None.\n\
Set the value of the convenience variable $NAME." },
{NULL, NULL, 0, NULL}
};