From 45f63999393a60550e1edb8a64aec0fe7a47bfc4 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 3 Nov 2011 19:19:10 +0100 Subject: [PATCH] debugger: workaround for http://sourceware.org/bugzilla/show_bug.cgi?id=13380 Task-number: QTCREATORBUG-6465 Change-Id: I98894cbd247b53e18b86ec997b9087d1f2d511f3 Reviewed-by: hjk (cherry picked from commit dbc84d8c1c56a35ef5220e32b4e27880d141901f) --- share/qtcreator/dumper/dumper.py | 8 +++++++- .../manual/debugger/simple/simple_test_app.cpp | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index 60fbd7049f..d6a7676b3f 100644 --- a/share/qtcreator/dumper/dumper.py +++ b/share/qtcreator/dumper/dumper.py @@ -1334,7 +1334,13 @@ class Dumper: return if type.code == TypedefCode: - self.putItem(value.cast(type.strip_typedefs())) + type = type.strip_typedefs() + # Workaround for http://sourceware.org/bugzilla/show_bug.cgi?id=13380 + if type.code == ArrayCode: + value = parseAndEvaluate("{%s}%s" % (type, value.address)) + else: + value = value.cast(type.strip_typedefs()) + self.putItem(value) self.putBetterType(typeName) return diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp index 1063710e79..ab9959d404 100644 --- a/tests/manual/debugger/simple/simple_test_app.cpp +++ b/tests/manual/debugger/simple/simple_test_app.cpp @@ -3634,6 +3634,22 @@ namespace cp42895 { } // namespace cp +namespace bug6465 { + + // https://bugreports.qt.nokia.com/browse/QTCREATORBUG-6465 + + void test6465() + { + typedef char Foo[20]; + Foo foo = "foo"; + char bar[20] = "baz"; + // BREAK HERE + dummyStatement(&foo, &bar); + } + +} // namespace bug6465 + + namespace varargs { void test(const char *format, ...) @@ -3778,6 +3794,7 @@ int main(int argc, char *argv[]) bug5106::test5106(); bug5184::test5184(); bug5799::test5799(); + bug6465::test6465(); application::testApplicationStart(argc, argv); -- GitLab