binutils-gdb/gdb/testsuite/gdb.python
Tom Tromey 0f6ed0e0ef Fix PR python/19438, PR python/18393 - initialize dictionaries
This fixes PR python/19438 and PR python/18393.  Both bugs are about
invoking dir() on some Python object implemented by gdb, and getting a
crash.

The crash happens because the dictionary field of these objects was
not initialized.  Apparently what happens is that this field can be
lazily initialized by Python when assigning to an attribute; and it
can also be handled ok when using dir() but without __dict__ defined;
but gdb defines __dict__ because this isn't supplied automatically by
Python.

The docs on this seem rather sparse, but this patch works ok.

An alternative might be to lazily create the dictionary in
gdb_py_generic_dict, but I went with this approach because it seemed
more straightforward.

Built and regtested on x86-64 Fedora 23.

2016-05-23  Tom Tromey  <tom@tromey.com>

	PR python/19438, PR python/18393:
	* python/py-objfile.c (objfpy_initialize): Initialize self->dict.
	* python/py-progspace.c (pspy_initialize): Initialize self->dict.

2016-05-23  Tom Tromey  <tom@tromey.com>

	PR python/19438, PR python/18393:
	* gdb.python/py-progspace.exp: Add "dir" test.
	* gdb.python/py-objfile.exp: Add "dir" test.
2016-05-23 10:08:34 -06:00
..
amd64-py-framefilter-invalidarg.S GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
lib-types.cc GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
lib-types.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-arch.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-arch.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-as-string.c Add $_as_string convenience function 2016-03-10 17:12:30 -05:00
py-as-string.exp Add $_as_string convenience function 2016-03-10 17:12:30 -05:00
py-bad-printers.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-bad-printers.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-bad-printers.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-block.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-block.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-breakpoint.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-breakpoint.exp python/19506 -- gdb.Breakpoint address location regression 2016-02-09 14:27:50 -08:00
py-caller-is.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-caller-is.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-cmd.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-cmd.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-completion.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-completion.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-error.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-error.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-events-shlib.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-events.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-events.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-events.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-evsignal.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-evthreads.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-evthreads.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-explore-cc.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-explore.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-explore.cc GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-explore.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-finish-breakpoint.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-finish-breakpoint.exp Rename gdb_load_shlibs to gdb_load_shlib 2016-04-27 18:09:14 -04:00
py-finish-breakpoint.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-finish-breakpoint2.cc GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-finish-breakpoint2.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-finish-breakpoint2.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-frame-args.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-frame-args.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-frame-args.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-frame-inline.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-frame-inline.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-frame.c
py-frame.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter-gdb.py.in GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter-invalidarg-gdb.py.in GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter-invalidarg.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter-invalidarg.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter-mi.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter-mi.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-framefilter.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-function.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-inferior.c
py-inferior.exp Reapply: List inferiors/threads/pspaces in ascending order 2016-01-12 01:12:38 +00:00
py-infthread.c
py-infthread.exp Add Python InferiorThread.global_num attribute 2016-01-13 11:00:54 +00:00
py-lazy-string.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-lazy-string.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-linetable.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-linetable.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-linetable.S GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-lookup-type.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-mi-events-gdb.py gdb.python/py-mi-events-gdb.py: Add parentheses to print 2016-04-09 08:41:41 -04:00
py-mi-events.c python: Use console format for output of gdb.execute command 2016-03-31 15:32:38 +03:00
py-mi-events.exp python: Use console format for output of gdb.execute command 2016-03-31 15:32:38 +03:00
py-mi-objfile-gdb.py testsuite: Update py-mi-objfile to expect console format print 2016-04-06 09:39:16 +03:00
py-mi-objfile.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-mi-objfile.exp testsuite: Update py-mi-objfile to expect console format print 2016-04-06 09:39:16 +03:00
py-mi.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-objfile-script-gdb.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-objfile-script.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-objfile-script.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-objfile.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-objfile.exp Fix PR python/19438, PR python/18393 - initialize dictionaries 2016-05-23 10:08:34 -06:00
py-parameter.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-integral.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-integral.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-integral.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-maint.c Fix sorting of enum values in FlagEnumerationPrinter 2016-01-20 13:44:33 -05:00
py-pp-maint.exp Fix sorting of enum values in FlagEnumerationPrinter 2016-01-20 13:44:33 -05:00
py-pp-maint.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-re-notag.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-re-notag.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-re-notag.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-registration.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-registration.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-pp-registration.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-prettyprint.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-prettyprint.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-prettyprint.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-progspace.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-progspace.exp Fix PR python/19438, PR python/18393 - initialize dictionaries 2016-05-23 10:08:34 -06:00
py-prompt.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-prompt.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-section-script.c [testsuite] @progbits -> %progbits 2016-01-18 14:30:23 +00:00
py-section-script.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-section-script.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-shared-sl.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-shared.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-shared.exp Rename gdb_load_shlibs to gdb_load_shlib 2016-04-27 18:09:14 -04:00
py-strfns.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-strfns.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-symbol.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-symbol.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-symtab.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-sync-interp.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-sync-interp.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-template.cc GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-template.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-type.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-type.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-typeprint.cc GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-typeprint.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-typeprint.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-unwind-maint.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-unwind-maint.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-unwind-maint.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-unwind.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-unwind.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-unwind.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-value-cc.cc GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-value-cc.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-value.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-value.exp testsuite: Fix false FAILs on too long base directory 2016-01-11 22:12:16 +01:00
py-xmethods.cc GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-xmethods.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
py-xmethods.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
python-1.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
python.c GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
python.exp GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
source1 GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00
source2.py GDB copyright headers update after running GDB's copyright.py script. 2016-01-01 08:43:22 +04:00