diff options
author | hjk <hjk@qt.io> | 2019-09-20 15:45:11 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-09-23 08:50:17 +0000 |
commit | 89a36c72322a61761e24d69e2645b0b1d5fd822c (patch) | |
tree | 226088c2de0465bf77af0c0568c13b8e02fdbac7 | |
parent | 54e3d06c5e175d86c634b67a0504af6b1e78374f (diff) | |
download | qt-creator-89a36c72322a61761e24d69e2645b0b1d5fd822c.tar.gz |
Debugger: Show FORTRAN strings
Fixes: QTCREATORBUG-22976
Change-Id: Ib435b2692301fe2e2d3378623e99bbcf16e27e46
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r-- | share/qtcreator/debugger/dumper.py | 4 | ||||
-rw-r--r-- | tests/auto/debugger/tst_dumpers.cpp | 35 |
2 files changed, 37 insertions, 2 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 1401926858..aa351b7e7e 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -2837,8 +2837,8 @@ class DumperBase: return if typeobj.code == TypeCodeFortranString: - data = self.value.data() - self.putValue(data, 'latin1', 1) + self.putValue(self.hexencode(value.data()), 'latin1') + self.putNumChild(0) self.putType(typeobj) if typeName.endswith('[]'): diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 5f8dc1e4f4..99b7f2ef2b 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -7262,6 +7262,41 @@ void tst_Dumpers::dumper_data() + Check("f1", "1", "@QSqlField (qlonglong)") + Check("f2", "\"qt-logo.png\"", "@QSqlField (QString)") + Check("f3", "(invalid)", "@QSqlField (invalid)"); + + + Data f90data; + f90data.configTest = "which f95"; + f90data.allProfile = + "CONFIG -= qt\n" + "SOURCES += main.f90\n" + "# Prevents linking\n" + "TARGET=\n" + "# Overwrites qmake-generated 'all' target.\n" + "all.commands = f95 -g -o doit main.f90\n" + "all.depends = main.f90\n" + "all.CONFIG = phony\n\n" + "QMAKE_EXTRA_TARGETS += all\n"; + + f90data.allCode = + "program test_fortran\n\n" + " implicit none\n\n" + " character(8) :: c8\n" + " integer(8) :: i8\n\n" + " i8 = 1337\n" + " c8 = 'c_____a_'\n" + " ! write (*,*) c8\n" + " i8 = i8 / 0\n" + "end program\n"; + + f90data.mainFile = "main.f90"; + + QTest::newRow("F90") + << f90data + + GdbEngine + + Check("c8", "\"c_____a_\"", "character *8") + + Check("i8", "1337", "integer(kind=8)"); + + #if 0 #ifdef Q_OS_LINUX // Hint: To open a failing test in Creator, do: |