debugger: work on manual tests, rearrange format computation

Change-Id: Ia1dc9f134fe19fc1607c150051381c61c0ad1469
Reviewed-on: http://codereview.qt.nokia.com/3053
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
hjk
2011-08-16 17:32:34 +02:00
committed by hjk
parent 271055277c
commit d2f995d8ef
2 changed files with 68 additions and 57 deletions

View File

@@ -1329,7 +1329,6 @@ class Dumper:
value = item.value value = item.value
realtype = value.type realtype = value.type
type = value.type.unqualified() type = value.type.unqualified()
format = self.itemFormat(item)
typedefStrippedType = stripTypedefs(type) typedefStrippedType = stripTypedefs(type)
@@ -1373,6 +1372,7 @@ class Dumper:
self.putAddress(value.address) self.putAddress(value.address)
self.putType(realtype) self.putType(realtype)
self.putNumChild(1) self.putNumChild(1)
format = self.itemFormat(item)
if format == 0: if format == 0:
# Explicitly requested Latin1 formatting. # Explicitly requested Latin1 formatting.
self.putValue(encodeCharArray(value, 100), Hex2EncodedLatin1) self.putValue(encodeCharArray(value, 100), Hex2EncodedLatin1)
@@ -1407,6 +1407,7 @@ class Dumper:
#warn(" STRIPPED: %s" % nsStrippedType) #warn(" STRIPPED: %s" % nsStrippedType)
#warn(" DUMPERS: %s" % (nsStrippedType in qqDumpers)) #warn(" DUMPERS: %s" % (nsStrippedType in qqDumpers))
format = self.itemFormat(item)
if self.useFancy \ if self.useFancy \
and ((format is None) or (format >= 1)) \ and ((format is None) or (format >= 1)) \
and ((nsStrippedType in qqDumpers) \ and ((nsStrippedType in qqDumpers) \

View File

@@ -370,61 +370,6 @@ class D : public X, public Y
int diamond; int diamond;
}; };
void testArray()
{
#if 1
X x;
XX xx;
D diamond;
Q_UNUSED(diamond);
Foo *f = &xx;
Q_UNUSED(f);
Foo ff;
Q_UNUSED(ff);
double d[3][3];
for (int i = 0; i != 3; ++i)
for (int j = 0; j != 3; ++j)
d[i][j] = i + j;
Q_UNUSED(d);
#endif
#if 1
char c[20];
c[0] = 'a';
c[1] = 'b';
c[2] = 'c';
c[3] = 'd';
Q_UNUSED(c);
#endif
#if 1
QString s[20];
s[0] = "a";
s[1] = "b";
s[2] = "c";
s[3] = "d";
Q_UNUSED(s);
#endif
#if 1
QByteArray b[20];
b[0] = "a";
b[1] = "b";
b[2] = "c";
b[3] = "d";
Q_UNUSED(b);
#endif
#if 1
Foo foo[10];
//for (int i = 0; i != sizeof(foo)/sizeof(foo[0]); ++i) {
for (int i = 0; i < 5; ++i) {
foo[i].a = i;
foo[i].doit();
}
#endif
}
#ifndef Q_CC_RVCT #ifndef Q_CC_RVCT
struct TestAnonymous struct TestAnonymous
{ {
@@ -2423,6 +2368,67 @@ namespace basic {
// This tests display of basic types. // This tests display of basic types.
void testArray1()
{
X x;
XX xx;
D diamond;
Foo *f = &xx;
Foo ff;
double d[3][3];
for (int i = 0; i != 3; ++i)
for (int j = 0; j != 3; ++j)
d[i][j] = i + j;
// <== Break here.
dummyStatement(&x, &f, &d);
dummyStatement(&ff, &diamond);
}
void testArray2()
{
char c[20];
c[0] = 'a';
c[1] = 'b';
c[2] = 'c';
c[3] = 'd';
// <== Break here.
dummyStatement(&c);
}
void testArray3()
{
QString s[20];
s[0] = "a";
s[1] = "b";
s[2] = "c";
s[3] = "d";
// <== Break here.
dummyStatement(&s);
}
void testArray4()
{
QByteArray b[20];
b[0] = "a";
b[1] = "b";
b[2] = "c";
b[3] = "d";
// <== Break here.
dummyStatement(&b);
}
void testArray5()
{
Foo foo[10];
//for (int i = 0; i != sizeof(foo)/sizeof(foo[0]); ++i) {
for (int i = 0; i < 5; ++i) {
foo[i].a = i;
foo[i].doit();
}
// <== Break here.
dummyStatement(&foo);
}
// http://bugreports.qt.nokia.com/browse/QTCREATORBUG-5326 // http://bugreports.qt.nokia.com/browse/QTCREATORBUG-5326
void testChar() void testChar()
@@ -2663,6 +2669,11 @@ namespace basic {
void testBasic() void testBasic()
{ {
testArray1();
testArray2();
testArray3();
testArray4();
testArray5();
testChar(); testChar();
testCharStar(); testCharStar();
testBitfields(); testBitfields();
@@ -3463,7 +3474,6 @@ int main(int argc, char *argv[])
testInput(); testInput();
testOutput(); testOutput();
testHidden(); testHidden();
testArray();
testCatchThrow(); testCatchThrow();
testQByteArray(); testQByteArray();
testQByteArray2(); testQByteArray2();