8sa1-binutils-gdb/gdb/testsuite/gdb.python
Hannes Domani b3f9469bfa Fix accessing a method's fields from Python
Considering this example:

struct C
{
  int func() { return 1; }
} c;
int main()
{
  return c.func();
}

Accessing the fields of C::func, when requesting the function by its
type, works:

(gdb) py print(gdb.parse_and_eval('C::func').type.fields()[0].type)
C * const

But when trying to do the same via a class instance, it fails:

(gdb) py print(gdb.parse_and_eval('c')['func'].type.fields()[0].type)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: Type is not a structure, union, enum, or function type.
Error while executing Python code.

The difference is that in the former the function type is TYPE_CODE_FUNC:

(gdb) py print(gdb.parse_and_eval('C::func').type.code == gdb.TYPE_CODE_FUNC)
True

And in the latter the function type is TYPE_CODE_METHOD:

(gdb) py print(gdb.parse_and_eval('c')['func'].type.code == gdb.TYPE_CODE_METHOD)
True

So this adds the functionality for TYPE_CODE_METHOD as well.

gdb/ChangeLog:

2020-12-18  Hannes Domani  <ssbssa@yahoo.de>

	* python/py-type.c (typy_get_composite): Add TYPE_CODE_METHOD.

gdb/testsuite/ChangeLog:

2020-12-18  Hannes Domani  <ssbssa@yahoo.de>

	* gdb.python/py-type.exp: Add tests for TYPE_CODE_METHOD.
2020-12-18 22:02:13 +01:00
..
amd64-py-framefilter-invalidarg.S Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
lib-types.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
lib-types.exp [gdb/testsuite] Fix xpass in gdb.python/lib-types.exp 2020-02-19 22:57:19 +01:00
py-arch-reg-groups.exp gdb/python: Reuse gdb.RegisterGroup objects where possible 2020-07-21 21:57:08 +01:00
py-arch-reg-names.exp gdb: Add a find method for RegisterDescriptorIterator 2020-07-28 10:27:53 +01:00
py-arch.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-arch.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-as-string.c Fix testcases with required but unreferenced functions and variables 2020-10-12 10:35:23 +01:00
py-as-string.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-bad-printers.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-bad-printers.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-bad-printers.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-block.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-block.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-breakpoint-create-fail.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-breakpoint-create-fail.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-breakpoint-create-fail.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-breakpoint.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-breakpoint.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-caller-is.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-caller-is.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-cmd.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-cmd.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-completion.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-completion.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-error.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-error.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-events-shlib.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-events.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-events.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-events.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-evsignal.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-evthreads.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-evthreads.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-explore-cc.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-explore.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-explore.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-explore.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-finish-breakpoint2.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-finish-breakpoint2.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-finish-breakpoint2.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-finish-breakpoint.c Fix "control reaches end of non-void function" errors in testsuite 2020-05-15 15:03:42 +01:00
py-finish-breakpoint.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-finish-breakpoint.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-format-string.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-format-string.exp Fix gdb.python/py-format-string.exp with Clang 2020-10-27 17:02:39 +00:00
py-format-string.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-frame-args.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-frame-args.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-frame-args.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-frame-inline.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-frame-inline.exp 'runto main' -> 'runto_main' throughout 2020-10-13 22:27:43 +01:00
py-frame.c
py-frame.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-framefilter-gdb.py.in Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-framefilter-invalidarg-gdb.py.in Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-framefilter-invalidarg.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-framefilter-invalidarg.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-framefilter-mi.c gdb.python/{py-framefilter-mi,py-framefilter}.c C++ify 2020-09-18 00:07:03 +01:00
py-framefilter-mi.exp Introduce mi_runto_main 2020-10-13 22:28:03 +01:00
py-framefilter.c gdb.python/{py-framefilter-mi,py-framefilter}.c C++ify 2020-09-18 00:07:03 +01:00
py-framefilter.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-framefilter.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-function.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-inferior.c
py-inferior.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-infthread.c
py-infthread.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-lazy-string.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-lazy-string.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-linetable.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-linetable.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-linetable.S Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-lookup-type.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-mi-events-gdb.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-mi-events.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-mi-events.exp Eliminate mi_run_to_main, introduce mi_clean_restart 2020-10-13 22:34:54 +01:00
py-mi-objfile-gdb.py gdb/testsuite/: Use "-qualified" in explicit "break main", etc. 2020-10-13 22:34:26 +01:00
py-mi-objfile.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-mi-objfile.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-mi-var-info-path-expression.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-mi-var-info-path-expression.exp Eliminate mi_run_to_main, introduce mi_clean_restart 2020-10-13 22:34:54 +01:00
py-mi-var-info-path-expression.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-mi.exp Introduce mi_runto_main 2020-10-13 22:28:03 +01:00
py-nested-maps.c gdb.python/py-nested-maps.exp C++ify 2020-09-18 00:07:22 +01:00
py-nested-maps.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-nested-maps.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-objfile-script-gdb.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-objfile-script.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-objfile-script.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-objfile.c Fix testcases with required but unreferenced functions and variables 2020-10-12 10:35:23 +01:00
py-objfile.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-parameter.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-pp-integral.c Improve -Wunused-value testcase build failures fix 2020-06-23 15:11:27 +01:00
py-pp-integral.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-integral.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-maint.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-maint.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-maint.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-re-notag.c Improve -Wunused-value testcase build failures fix 2020-06-23 15:11:27 +01:00
py-pp-re-notag.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-re-notag.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-registration.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-registration.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-pp-registration.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-prettyprint.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-prettyprint.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-prettyprint.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-progspace.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-progspace.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-prompt.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-prompt.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-rbreak-func2.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-rbreak.c gdb/testsuite: Explicitly return from main 2020-09-13 22:47:01 +01:00
py-rbreak.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-record-btrace-threads.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-record-btrace-threads.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-record-btrace.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-record-btrace.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-record-full.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-record-full.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-recurse-unwind.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-recurse-unwind.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-recurse-unwind.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-rvalue-ref-value-cc.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-rvalue-ref-value-cc.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-section-script.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-section-script.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-section-script.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-shared-sl.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-shared.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-shared.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-strfns.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-strfns.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-symbol-2.c Fix testcases with required but unreferenced functions and variables 2020-10-12 10:35:23 +01:00
py-symbol.c Fix testcases with required but unreferenced functions and variables 2020-10-12 10:35:23 +01:00
py-symbol.exp [gdb/testsuite] Fix gdb.python/py-symbol.exp with -readnow 2020-10-28 21:04:12 +01:00
py-symtab.exp [gdb/testsuite] Add xfails for PR gcc/90232 2020-04-29 13:22:21 +02:00
py-sync-interp.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-sync-interp.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-template.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-template.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-thrhandle.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-thrhandle.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-type.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-type.exp Fix accessing a method's fields from Python 2020-12-18 22:02:13 +01:00
py-typeprint.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-typeprint.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-typeprint.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-unwind-inline.c gdb: Python unwinders, inline frames, and tail-call frames 2020-07-06 15:06:07 +01:00
py-unwind-inline.exp gdb: Python unwinders, inline frames, and tail-call frames 2020-07-06 15:06:07 +01:00
py-unwind-inline.py gdb: Python unwinders, inline frames, and tail-call frames 2020-07-06 15:06:07 +01:00
py-unwind-maint.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-unwind-maint.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-unwind-maint.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-unwind.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-unwind.exp gdb: introduce new 'maint flush ' prefix command 2020-12-13 12:36:15 +00:00
py-unwind.py gdb/python: make more use of RegisterDescriptors 2020-07-28 10:27:54 +01:00
py-value-cc.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-value-cc.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-value.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-value.exp Fix test breakages caused by removal of gdb_py_test_multiple. 2020-06-30 18:40:21 +02:00
py-xmethods.cc Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-xmethods.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
py-xmethods.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
python-1.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
python.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
python.exp gdb: Fix from_tty argument to gdb.execute in Python. 2020-09-26 11:01:45 -07:00
source1 Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
source2.py Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-window.exp Fix crash when TUI window creation fails 2020-06-16 17:48:38 -06:00
tui-window.py Fix crash when TUI window creation fails 2020-06-16 17:48:38 -06:00