You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.5 KiB
104 lines
3.5 KiB
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 |
|
From: Fedora GDB patches <invalid@email.com> |
|
Date: Fri, 27 Oct 2017 21:07:50 +0200 |
|
Subject: gdb-fortran-frame-string.patch |
|
|
|
;; Display Fortran strings in backtraces. |
|
;;=fedoratest |
|
|
|
http://sourceware.org/ml/gdb-patches/2014-07/msg00709.html |
|
|
|
Hi, |
|
|
|
for Fortran it fixes displaying normal strings also in frames/backtraces: |
|
|
|
(gdb) frame |
|
-> |
|
|
|
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 |
|
--- /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 |
|
--- /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 <jakub@redhat.com>. |
|
+! Modified for the GDB testcase by Jan Kratochvil <jan.kratochvil@redhat.com>. |
|
+ |
|
+ subroutine f(s) |
|
+ character*3 s |
|
+ s = s |
|
+ end |
|
+ |
|
+ program main |
|
+ call f ('foo') |
|
+ end
|
|
|