Files
binutils-gdb/gdb/testsuite/gdb.python/py-varobj.exp
Tom Tromey d1369de649 Fix bug in -var-evaluate-expression
This bug points out that if one uses -var-set-visualizer with "None"
-- to disable a pretty-printer for a varobj -- then
-var-evaluate-expression will still use pretty-printing.

This is a combination of bugs.  First, setting the visualizer does not
update the display text; and second, computing the display text should
use "raw" when Python is available but no visualizer is desired.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11738
Reviewed-by: Keith Seitz <keiths@redhat.com>
2023-09-07 14:04:53 -06:00

62 lines
1.7 KiB
Plaintext

# Copyright (C) 2023 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/>.
# Some varobj tests involving pretty-printers
load_lib mi-support.exp
set MIFLAGS "-i=mi"
require allow_python_tests
standard_testfile
if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != ""} {
return -1
}
mi_clean_restart $binfile
set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
mi_gdb_test "source ${pyfile}" \
".*\\^done" \
"load python file"
mi_gdb_test "-enable-pretty-printing" \
"\\^done" \
"-enable-pretty-printing"
mi_gdb_test "set python print-stack full" \
".*\\^done" \
"set python print-stack full"
mi_runto_main
mi_gdb_test "-var-create tval * tval" \
"\\^done.*"
mi_gdb_test "-var-list-children --all-values tval" \
".*value=.*flicker.*"
mi_gdb_test "-var-create test_ptr * test_ptr" \
"\\^done.*"
mi_gdb_test "-var-evaluate-expression test_ptr" \
"\\^done,value=\"map\""
mi_gdb_test "-var-set-visualizer test_ptr None" \
"\\^done.*"
# mi_gdb_test "-var-update test_ptr" ".*"
mi_gdb_test "-var-evaluate-expression test_ptr" \
"\\^done,value=\"$hex.*\"" \
"evaluate without visualizer"