diff options
author | Doug Evans <dje@google.com> | 2014-09-18 10:09:12 -0700 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2014-09-18 10:09:12 -0700 |
commit | 2b4fd423cf503beb6264590f0517d35f17a6ab8d (patch) | |
tree | 6cd77a3fb9668459b2262f83874cd31e3c361281 /gdb/testsuite | |
parent | 92c9bcd479e4cb388a7f286fc42414b115cfc656 (diff) | |
download | gdb-2b4fd423cf503beb6264590f0517d35f17a6ab8d.zip gdb-2b4fd423cf503beb6264590f0517d35f17a6ab8d.tar.gz gdb-2b4fd423cf503beb6264590f0517d35f17a6ab8d.tar.bz2 |
New "producer" attribute of python gdb.Symtab.
gdb/ChangeLog:
* NEWS: Mention new "producer" attribute of gdb.Symtab.
* python/py-symtab.c (stpy_get_producer): New function.
(symtab_object_getset): Add "producer" attribute.
gdb/doc/ChangeLog:
* python.texi (Symbol Tables In Python): Document "producer"
attribute of gdb.Symtab objects.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/symtab-producer.exp: New file.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/symtab-producer.exp | 103 |
2 files changed, 107 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 60cb224..a4b03dc 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-09-18 Doug Evans <dje@google.com> + + * gdb.dwarf2/symtab-producer.exp: New file. + 2014-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.base/global-var-nested-by-dso-solib1.c: New file. diff --git a/gdb/testsuite/gdb.dwarf2/symtab-producer.exp b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp new file mode 100644 index 0000000..57cf04c --- /dev/null +++ b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp @@ -0,0 +1,103 @@ +# Copyright 2014 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +load_lib dwarf.exp +load_lib gdb-python.exp + +# This test can only be run on targets which support DWARF-2 and use gas. +if {![dwarf2_support]} { + return 0 +} + +# This test can also only be run when we have python support in gdb, +# but that test can only be done after gdb has started, below. + +standard_testfile main.c symtab-producer-dw.S + +# Make some DWARF for the test. +set asm_file [standard_output_file $srcfile2] +Dwarf::assemble $asm_file { + cu {} { + DW_TAG_compile_unit { + {DW_AT_producer "ACME Compiler Company"} + {DW_AT_language @DW_LANG_C} + {DW_AT_name symtab-producer-dw.c} + {DW_AT_comp_dir /tmp} + } { + declare_labels integer_label + + integer_label: DW_TAG_base_type { + {DW_AT_byte_size 4 DW_FORM_sdata} + {DW_AT_encoding @DW_ATE_signed} + {DW_AT_name integer} + } + + DW_TAG_variable { + {DW_AT_name with_producer} + {DW_AT_type :$integer_label} + {DW_AT_external 1 flag} + {DW_AT_const_value 42 DW_FORM_sdata} + } + } + } + cu {} { + DW_TAG_compile_unit { + {DW_AT_language @DW_LANG_C} + {DW_AT_name symtab-producer2-dw.c} + {DW_AT_comp_dir /tmp} + } { + declare_labels integer_label + + integer_label: DW_TAG_base_type { + {DW_AT_byte_size 4 DW_FORM_sdata} + {DW_AT_encoding @DW_ATE_signed} + {DW_AT_name integer} + } + + DW_TAG_variable { + {DW_AT_name without_producer} + {DW_AT_type :$integer_label} + {DW_AT_external 1 flag} + {DW_AT_const_value 43 DW_FORM_sdata} + } + } + } +} + +# We need --readnow because otherwise we never read in the CUs we +# created above. +set saved_gdbflags $GDBFLAGS +set GDBFLAGS "$GDBFLAGS -readnow" + +if { [prepare_for_testing ${testfile}.exp ${testfile} \ + [list $srcfile $asm_file] {nodebug}] } { + set GDBFLAGS $saved_gdbflags + return -1 +} + +set GDBFLAGS $saved_gdbflags + +# Skip all tests if Python scripting is not enabled. +if { [skip_python_tests] } { continue } + +gdb_py_test_silent_cmd "python with_producer = gdb.lookup_global_symbol(\"with_producer\")" \ + "get with_producer symbol" 0 + +gdb_test "python print with_producer.symtab.producer" "ACME Compiler Company" + +gdb_py_test_silent_cmd "python without_producer = gdb.lookup_global_symbol(\"without_producer\")" \ + "get without_producer symbol" 0 + +gdb_test "python print without_producer.symtab.producer" "None" |