From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29928 invoked by alias); 19 Nov 2007 17:58:15 -0000 Received: (qmail 29901 invoked by uid 440); 19 Nov 2007 17:58:14 -0000 Date: Mon, 19 Nov 2007 17:58:00 -0000 Message-ID: <20071119175814.29886.qmail@sourceware.org> From: scox@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 1a09ef28c7da47ad245f2a502780e5e592308035 X-Git-Newrev: fd5a20b87a3d6c171fe8888b6d006b9241f1928c Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2007-q4/txt/msg00398.txt.bz2 The branch, master has been updated via fd5a20b87a3d6c171fe8888b6d006b9241f1928c (commit) via 1213a237d4c989ed9f1310f0c823571d78cbb8f5 (commit) from 1a09ef28c7da47ad245f2a502780e5e592308035 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fd5a20b87a3d6c171fe8888b6d006b9241f1928c Merge: 1213a237d4c989ed9f1310f0c823571d78cbb8f5 1a09ef28c7da47ad245f2a502780e5e592308035 Author: Stan Cox Date: Mon Nov 19 12:52:05 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 1213a237d4c989ed9f1310f0c823571d78cbb8f5 Author: Stan Cox Date: Mon Nov 19 12:51:38 2007 -0500 Add indentation to toPrint. (5310) * Type.java (toPrint(PrintWriter, Location, ByteBuffer, Format, int)): Add indent parameter. Change all implementers. (toPrint(PrintWriter writer, int indent)): Likewise. * Value.java (toPrint(PrintWriter, ByteBuffer, Format, int): Likewise. * CompositeType.java (toPrint (PrintWriter, Location, ByteBuffer, * gen-type-funit-tests.py (main): Allow for improved formatting of array of struct and ptr to struct. Format, int)): Remove CompositeType special case. (toPrint (PrintWriter, int)): Likewise. ----------------------------------------------------------------------- Summary of changes: .../frysk/debuginfo/gen-type-expect-tests.py | 4 +- frysk-core/frysk/hpd/EvalCommands.java | 6 +- frysk-core/frysk/pkglibdir/ChangeLog | 5 + frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 80 ++++++++++---------- frysk-core/frysk/value/ArithmeticType.java | 2 +- frysk-core/frysk/value/ArrayType.java | 18 ++-- frysk-core/frysk/value/BooleanType.java | 2 +- frysk-core/frysk/value/ChangeLog | 10 +++ frysk-core/frysk/value/CharType.java | 2 +- frysk-core/frysk/value/CompositeType.java | 38 ++++------ frysk-core/frysk/value/EnumType.java | 4 +- frysk-core/frysk/value/FloatingPointType.java | 2 +- frysk-core/frysk/value/FunctionType.java | 8 +- frysk-core/frysk/value/IntegerType.java | 2 +- frysk-core/frysk/value/PointerType.java | 13 ++-- frysk-core/frysk/value/Type.java | 12 ++-- frysk-core/frysk/value/TypeDecorator.java | 10 +- frysk-core/frysk/value/TypeDef.java | 2 +- frysk-core/frysk/value/UnknownType.java | 6 +- frysk-core/frysk/value/Value.java | 11 ++- frysk-core/frysk/value/Variable.java | 4 +- frysk-core/frysk/value/VoidType.java | 4 +- 22 files changed, 128 insertions(+), 117 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index caf26d5..c8197e2 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -115,6 +115,8 @@ public class %s extends TestLib { assertNotNull(varDie); varType = typeEntry.getType(varDie.getType()); assertNotNull(varType); + // System.out.println("Expect: " + expect[i].symbol + "\\n'" + + // expect[i].output + "'\\nGot:\\n'" + varType.toPrint()); assertEquals(myName + expect[i].symbol, expect[i].output, varType.toPrint()); } } @@ -137,7 +139,7 @@ public class %s extends TestLib { assertNotNull(varDie); DebugInfo debugInfo = new DebugInfo(frame); Value value = debugInfo.print(expect[i].symbol, frame); - value.toPrint(pw, task.getMemory(), Format.NATURAL); + value.toPrint(pw, task.getMemory(), Format.NATURAL, 0); pw.flush(); String valueString = baos.toString(); // System.out.println("Expect: " + expect[i].symbol + diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index 1d6082a..b63e3bf 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -63,10 +63,10 @@ abstract class EvalCommands extends ParameterizedCommand { Type t = e.getType(); if (t instanceof PointerType) { writer.print("("); - t.toPrint(writer); + t.toPrint(writer, 0); writer.print(") "); } - e.getValue().toPrint(writer, memory, format); + e.getValue().toPrint(writer, memory, format, 0); writer.println(); } }; @@ -80,7 +80,7 @@ abstract class EvalCommands extends ParameterizedCommand { static final Printer TYPE = new Printer() { void print(Expression e, PrintWriter writer, Format format, ByteBuffer memory) { - e.getType().toPrint(writer); + e.getType().toPrint(writer, 0); writer.println(); } }; diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 607b5fb..d383139 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-19 Stan Cox + + * gen-type-funit-tests.py (main): Allow for improved formatting of + array of struct and ptr to struct. + 2007-11-15 Stan Cox * funit-quicksort.c: New. diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index a23ae24..123d477 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -417,32 +417,31 @@ c_file.add('''struct { }''', "struct_arr_arr_int", '''{ .arr_arr_int={{1,2},{3,4}}, }''') -# ??? array doesn't know the current indentation level c_file.add('''struct { struct { - int int_var; -} arr_struct[2]; + int int_var; + } arr_struct[2]; }''', "struct_arr_struct", '''{ .arr_struct={{ - .int_var=1, -},{ - .int_var=2, -}}, + .int_var=1, + },{ + .int_var=2, + }}, }''') c_file.add('''struct { union { - int int_var; -} arr_union[4]; + int int_var; + } arr_union[4]; }''', "struct_arr_union", '''{ .arr_union={{ - .int_var=1, -},{ - .int_var=2, -},{ - .int_var=0, -},{ - .int_var=0, -}}, + .int_var=1, + },{ + .int_var=2, + },{ + .int_var=0, + },{ + .int_var=0, + }}, }''') c_file.add('''struct { int * arr_ptr[2]; @@ -532,16 +531,15 @@ c_file.add('''struct { c_file.add('''struct { int (* ptr_arr)[4]; }''', "struct_ptr_arr", "") -# ??? ptr doesn't know the current indentation level c_file.add('''struct { struct { - int int_var; -} * ptr_struct; + int int_var; + } * ptr_struct; }''', "struct_ptr_struct", "") c_file.add('''struct { union { - int int_var; -} * ptr_union; + int int_var; + } * ptr_union; }''', "struct_ptr_union", "") c_file.add('''struct { int * * ptr_ptr; @@ -555,28 +553,28 @@ c_file.add('''union { }''') c_file.add('''union { struct { - int int_var; -} arr_struct[2]; + int int_var; + } arr_struct[2]; }''', "union_arr_struct", '''{ .arr_struct={{ - .int_var=1, -},{ - .int_var=0, -}}, + .int_var=1, + },{ + .int_var=0, + }}, }''') c_file.add('''union { union { - int int_var; - float float_var; -} arr_union[2]; + int int_var; + float float_var; + } arr_union[2]; }''', "union_arr_union", '''{ .arr_union={{ - .int_var=1, - .float_var=1.4012985E-45, -},{ - .int_var=0, - .float_var=0.0, -}}, + .int_var=1, + .float_var=1.4012985E-45, + },{ + .int_var=0, + .float_var=0.0, + }}, }''') c_file.add('''union { int * arr_ptr[4]; @@ -671,13 +669,13 @@ c_file.add('''union { }''', "union_ptr_arr", "") c_file.add('''union { struct { - int int_var; -} * ptr_struct; + int int_var; + } * ptr_struct; }''', "union_ptr_struct", "") c_file.add('''union { union { - int int_var; -} * ptr_union; + int int_var; + } * ptr_union; }''', "union_ptr_union", "") c_file.add('''union { int * * ptr_ptr; diff --git a/frysk-core/frysk/value/ArithmeticType.java b/frysk-core/frysk/value/ArithmeticType.java index 4134a05..a0fc2d7 100644 --- a/frysk-core/frysk/value/ArithmeticType.java +++ b/frysk-core/frysk/value/ArithmeticType.java @@ -70,7 +70,7 @@ public abstract class ArithmeticType return var1.assign(var2); } - public void toPrint(PrintWriter writer) { + public void toPrint(PrintWriter writer, int indent) { writer.print(getName()); } diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 897c9ec..c5e7b06 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -169,8 +169,8 @@ public class ArrayType } void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { - // XXX: Add dimension start/end instead of assuming {} + ByteBuffer memory, Format format, int indent) { + // XXX: Add dimension start/end string instead of assuming {} for (int i = 0; i < dimension.length - 1; i++) writer.print("{"); for (ArrayIterator e = new ArrayIterator(location); e.hasNext(); ) { @@ -184,7 +184,7 @@ public class ArrayType if ((e.idx % stride[i]) == 0) writer.print("{"); } - if (! toPrintVector(writer, type, e, memory, format)) + if (! toPrintVector(writer, type, e, memory, format, indent)) break; } for (int i = 0; i < dimension.length - 1; i++) @@ -192,7 +192,7 @@ public class ArrayType } private boolean toPrintVector(PrintWriter writer, Type type, ArrayIterator e, - ByteBuffer memory, Format format) + ByteBuffer memory, Format format, int indent) { boolean isVector = dimension.length == 1; int vectorLength = dimension[dimension.length - 1]; @@ -222,7 +222,7 @@ public class ArrayType writer.print((char)c.longValue()); } else { - type.toPrint(writer, l, memory, format); + type.toPrint(writer, l, memory, format, indent); if (i < vectorLength - 1) writer.print(","); } @@ -238,8 +238,8 @@ public class ArrayType return noNullByte; } - public void toPrint(String s, PrintWriter writer) { - type.toPrint(writer); + public void toPrint(PrintWriter writer, String s, int indent) { + type.toPrint(writer, indent); writer.print(" " + s); for(int i = 0; i < this.dimension.length; i++) { writer.print("["); @@ -248,8 +248,8 @@ public class ArrayType } } - public void toPrint(PrintWriter writer) { - this.toPrint("", writer); + public void toPrint(PrintWriter writer, int indent) { + this.toPrint(writer, "", indent); } /* getALUs are double dispatch functions to determine diff --git a/frysk-core/frysk/value/BooleanType.java b/frysk-core/frysk/value/BooleanType.java index 63001db..4db5245 100644 --- a/frysk-core/frysk/value/BooleanType.java +++ b/frysk-core/frysk/value/BooleanType.java @@ -71,7 +71,7 @@ public class BooleanType super.putBigInteger(location, BigInteger.ONE); } public void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { if (getBigInteger(location).equals(BigInteger.ZERO)) writer.print("true"); else diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index d30cda8..3b2cf17 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,13 @@ +2007-11-19 Stan Cox + + * Type.java (toPrint(PrintWriter, Location, ByteBuffer, Format, int)): + Add indent parameter. Change all implementers. + (toPrint(PrintWriter writer, int indent)): Likewise. + * Value.java (toPrint(PrintWriter, ByteBuffer, Format, int): Likewise. + * CompositeType.java (toPrint (PrintWriter, Location, ByteBuffer, + Format, int)): Remove CompositeType special case. + (toPrint (PrintWriter, int)): Likewise. + 2007-11-18 Andrew Cagney * ArrayType.java (completeMember(String,List)): New. diff --git a/frysk-core/frysk/value/CharType.java b/frysk-core/frysk/value/CharType.java index 6319c84..852ccef 100644 --- a/frysk-core/frysk/value/CharType.java +++ b/frysk-core/frysk/value/CharType.java @@ -62,7 +62,7 @@ public class CharType } public void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { writer.print("'"); writer.print((char) getBigInteger(location).longValue()); writer.print("'"); diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 9937d28..7bc3c43 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -249,8 +249,12 @@ public abstract class CompositeType return new ClassIterator(); } - void toPrint(int indentation, PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + + + void toPrint(PrintWriter writer, Location location, + ByteBuffer memory, Format format, int indentation) { + if (indentation == 0) + indentation = 2; String indentPrefix = ""; for (int indent = 1; indent <= indentation; indent++) indentPrefix = indentPrefix + " "; @@ -269,11 +273,7 @@ public abstract class CompositeType Location loc = location.slice(member.offset, member.type.getSize()); Value val = new Value(member.type, loc); - if (member.type instanceof CompositeType) - ((CompositeType) member.type).toPrint(indentation + 2, - writer, loc, memory, format); - else - val.toPrint(writer, memory, format); + val.toPrint(writer, memory, format, indentation + 2); writer.print(",\n"); } } @@ -282,12 +282,7 @@ public abstract class CompositeType writer.print("}"); } - void toPrint(PrintWriter writer, Location location, ByteBuffer memory, - Format format) { - this.toPrint(2, writer, location, memory, format); - } - - public void toPrint(int indentation, PrintWriter writer) { + public void toPrint(PrintWriter writer, int indentation) { // FIXME: going away. if (this.isTypedef() && this.getName() != null && this.getName().length() > 0) { @@ -295,6 +290,8 @@ public abstract class CompositeType return; } + if (indentation == 0) + indentation = 2; String indentPrefix = ""; for (int indent = 1; indent <= indentation; indent++) indentPrefix = indentPrefix + " "; @@ -344,18 +341,19 @@ public abstract class CompositeType writer.print(indentPrefix); if (member.type.isTypedef()) writer.print(member.type.getName()); - else if (member.type instanceof CompositeType) - ((CompositeType) member.type).toPrint(indentation + 2, writer); else if (member.type instanceof ArrayType) { + // For handling int x[2] printName = false; - ((ArrayType) member.type).toPrint(member.name, writer); + ((ArrayType) member.type).toPrint(writer, member.name, indentation + 2); } else if (member.type instanceof PointerType) { + // For handling int (*x)[2] printName = false; - ((PointerType) member.type).toPrint(" " + member.name, writer); + ((PointerType) member.type).toPrint(writer, " " + member.name, + indentation + 2); } else - member.type.toPrint(writer); + member.type.toPrint (writer, indentation + 2); if (member.type instanceof frysk.value.FunctionType) printName = false; if (printName) { @@ -378,10 +376,6 @@ public abstract class CompositeType writer.print("}"); } - public void toPrint( PrintWriter writer) { - this.toPrint(2, writer); - } - public Value member(Value var1, String member) { DynamicMember mem = (DynamicMember)nameToMember.get(member); diff --git a/frysk-core/frysk/value/EnumType.java b/frysk-core/frysk/value/EnumType.java index ff59cdd..872be47 100644 --- a/frysk-core/frysk/value/EnumType.java +++ b/frysk-core/frysk/value/EnumType.java @@ -86,7 +86,7 @@ public class EnumType extends IntegerTypeDecorator // Should Format be made responsible? So that HEX would override // printing the enum's name and print raw hex instead? void toPrint (PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { BigInteger value = getBigInteger(location); Member map = (Member)valueToMember.get(value); if (map != null) @@ -96,7 +96,7 @@ public class EnumType extends IntegerTypeDecorator format.print(writer, location, this); } - public void toPrint(PrintWriter writer) { + public void toPrint(PrintWriter writer, int indent) { writer.print("enum"); if (getName() != null) { writer.print(" "); diff --git a/frysk-core/frysk/value/FloatingPointType.java b/frysk-core/frysk/value/FloatingPointType.java index 63aa570..9baf827 100644 --- a/frysk-core/frysk/value/FloatingPointType.java +++ b/frysk-core/frysk/value/FloatingPointType.java @@ -56,7 +56,7 @@ public class FloatingPointType } public void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { // double-dispatch. format.print(writer, location, this); } diff --git a/frysk-core/frysk/value/FunctionType.java b/frysk-core/frysk/value/FunctionType.java index 44efb9d..4a85845 100644 --- a/frysk-core/frysk/value/FunctionType.java +++ b/frysk-core/frysk/value/FunctionType.java @@ -58,23 +58,23 @@ public class FunctionType void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { // XXX: Print the function's name? writer.print("0x"); BigInteger v = new BigInteger(1, location.get(memory.order())); writer.print(Long.toHexString(v.longValue())); } - public void toPrint(PrintWriter writer) { + public void toPrint(PrintWriter writer, int indent) { if (returnType == null) writer.print("void"); else - returnType.toPrint(writer); + returnType.toPrint(writer, 0); writer.print(" "); writer.print(this.getName()); writer.print(" ("); for (int i = 0; i < this.parmTypes.size(); i++) { - ((Type)this.parmTypes.get(i)).toPrint(writer); + ((Type)this.parmTypes.get(i)).toPrint(writer, 0); writer.print(" "); writer.print((String)this.parmNames.get(i)); if (i < this.parmTypes.size() - 1) diff --git a/frysk-core/frysk/value/IntegerType.java b/frysk-core/frysk/value/IntegerType.java index db9166b..2cf02ba 100644 --- a/frysk-core/frysk/value/IntegerType.java +++ b/frysk-core/frysk/value/IntegerType.java @@ -55,7 +55,7 @@ public abstract class IntegerType } void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { // double-dispatch. format.print(writer, location, this); } diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index f7805d8..0e6cad1 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -76,7 +76,7 @@ public class PointerType } void toPrint(PrintWriter writer, Location location, ByteBuffer memory, - Format format) { + Format format, int indent) { format.print(writer, location, this); hooks/post-receive -- frysk system monitor/debugger