http://sourceware.org/ml/gdb-patches/2014-07/msg00709.html Subject: [patch] Display Fortran strings in backtraces Hi, for Fortran it fixes displaying normal strings also in frames/backtraces: (gdb) frame #0 f (s=..., _s=3) at ./gdb.fortran/fortran-frame-string.f90:24 -> #0 f (s='foo', _s=3) at ./gdb.fortran/fortran-frame-string.f90:24 The patch is simple and I do not see why it should not be this way. For C/C++ TYPE_CODE_STRING is not used. I am not aware of Pascal but that language is currently not really much supported in GDB anyway. This was a part of my archer/jankratochvil/vla branch but it is not a part of the Intel VLA patchset as it in fact is completely unrelated to "VLA". No regressions on {x86_64,x86_64-m32,i686}-fedora22pre-linux-gnu. Thanks, Jan diff --git a/gdb/testsuite/gdb.fortran/fortran-frame-string.exp b/gdb/testsuite/gdb.fortran/fortran-frame-string.exp new file mode 100644 index 0000000..4b78266 --- /dev/null +++ b/gdb/testsuite/gdb.fortran/fortran-frame-string.exp @@ -0,0 +1,36 @@ +# 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +standard_testfile .f90 +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}] } { + return -1 +} + +if ![runto MAIN__] then { + perror "couldn't run to breakpoint MAIN__" + continue +} + +gdb_breakpoint [gdb_get_line_number "s = s"] +gdb_continue_to_breakpoint "s = s" + +gdb_test "ptype s" {type = character\*3} +gdb_test "p s" " = 'foo'" + +# Fix rejected upstream: +# https://sourceware.org/ml/gdb-patches/2014-07/msg00768.html +setup_kfail "rejected" *-*-* +gdb_test "frame" { \(s='foo', .*} diff --git a/gdb/testsuite/gdb.fortran/fortran-frame-string.f90 b/gdb/testsuite/gdb.fortran/fortran-frame-string.f90 new file mode 100644 index 0000000..3d1576f --- /dev/null +++ b/gdb/testsuite/gdb.fortran/fortran-frame-string.f90 @@ -0,0 +1,28 @@ +! 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 2 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, write to the Free Software +! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +! +! Ihis file is the Fortran source file for dynamic.exp. +! Original file written by Jakub Jelinek . +! Modified for the GDB testcase by Jan Kratochvil . + + subroutine f(s) + character*3 s + s = s + end + + program main + call f ('foo') + end