public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: swagiaal@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: swagiaal: Created and used LineColPair for representing line col information Date: Tue, 11 Dec 2007 17:39:00 -0000 [thread overview] Message-ID: <20071211173910.10966.qmail@sourceware.org> (raw) The branch, master has been updated via 139d8892d71e4b02a031ed9ee4ba2e943641597c (commit) from cdad0e3f634a6a4caac80c4732cba140b2d5280c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 139d8892d71e4b02a031ed9ee4ba2e943641597c Author: Sami Wagiaalla <swagiaal@redhat.com> Date: Tue Dec 11 11:53:27 2007 -0500 swagiaal: Created and used LineColPair for representing line col information frysk-core/frysk/debuginfo/ChangeLog +2007-12-11 Sami Wagiaalla <swagiaal@redhat.com> + + CompositeType constructors and add functions now take LineColPair argument. + * TypeEntry.java: Updated. + frysk-core/frysk/scopes/ChangeLog +2007-12-11 Sami Wagiaalla <swagiaal@redhat.com> + + * LineColPair.java: New. + frysk-core/frysk/value/ChangeLog +2007-12-11 Sami Wagiaalla <swagiaal@redhat.com> + + * CompositeType.java: Member now has a LineColPair element. + Constructors and add functions now take LineColPair argument. + * ObjectDeclaration.java (getLineCol): New. + * Variable.java: Now uses LineColPair. + * EnumType.java: Updated. + * TestComposite.java: Updated. + frysk-sys/lib/dwfl/ChangeLog +2007-12-11 Sami Wagiaalla <swagiaal@redhat.com> + + * cni/DwarfDie.cxx (DwarfDie::get_decl_line): now + throws AttributeNotFoundExceptioin. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 + frysk-core/frysk/debuginfo/TypeEntry.java | 41 +++++++--- frysk-core/frysk/expr/TestbedSymTab.java | 14 ++-- frysk-core/frysk/scopes/ChangeLog | 4 + .../UnknownSymbol.java => scopes/LineColPair.java} | 26 ++++--- frysk-core/frysk/value/ChangeLog | 9 ++ frysk-core/frysk/value/CompositeType.java | 45 +++++++----- frysk-core/frysk/value/EnumType.java | 8 ++ frysk-core/frysk/value/ObjectDeclaration.java | 4 + frysk-core/frysk/value/TestComposite.java | 78 ++++++++++---------- frysk-core/frysk/value/Variable.java | 10 ++- frysk-sys/lib/dwfl/ChangeLog | 5 + frysk-sys/lib/dwfl/cni/DwarfDie.cxx | 2 +- 13 files changed, 163 insertions(+), 88 deletions(-) copy frysk-core/frysk/{symtab/UnknownSymbol.java => scopes/LineColPair.java} (88%) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 52213aa..d10406e 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,8 @@ +2007-12-11 Sami Wagiaalla <swagiaal@redhat.com> + + CompositeType constructors and add functions now take LineColPair argument. + * TypeEntry.java: Updated. + 2007-12-11 Teresa Thomas <tthomas@redhat.com> * TypeEntry.java (getType): Create FloatingPoint type diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 144883e..97ac24e 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -40,6 +40,7 @@ package frysk.debuginfo; import frysk.isa.ISA; +import frysk.scopes.LineColPair; import frysk.value.Access; import frysk.value.ArrayType; import frysk.value.CharType; @@ -145,7 +146,14 @@ public class TypeEntry offset = 0; // union staticMember = true; } - + + LineColPair lineColPair; + try{ + lineColPair = new LineColPair(member.getDeclLine(), member.getDeclColumn()); + }catch(DwAttributeNotFoundException e){ + lineColPair = new LineColPair(-1,-1); + } + Access access = null; switch (member.getAttrConstant(DwAt.ACCESSIBILITY)) { case DwAccess.PUBLIC_: access = Access.PUBLIC; break; @@ -156,9 +164,9 @@ public class TypeEntry if (member.getTag() == DwTag.SUBPROGRAM) { Value v = getSubprogramValue(member); if(hasArtifitialParameter(member)){ - classType.addMember(member.getName(), v.getType(), offset, access); + classType.addMember(member.getName(), lineColPair, v.getType(), offset, access); }else{ - classType.addStaticMember(member.getName(), v.getType(), offset, access); + classType.addStaticMember(member.getName(), lineColPair, v.getType(), offset, access); } continue; } @@ -176,18 +184,18 @@ public class TypeEntry int bitOffset = member .getAttrConstant(DwAt.BIT_OFFSET); if(staticMember){ - classType.addStaticBitFieldMember(member.getName(), memberType, offset, access, + classType.addStaticBitFieldMember(member.getName(), lineColPair, memberType, offset, access, bitOffset, bitSize); }else{ - classType.addBitFieldMember(member.getName(), memberType, offset, access, + classType.addBitFieldMember(member.getName(), lineColPair, memberType, offset, access, bitOffset, bitSize); } } else{ if(staticMember){ - classType.addStaticMember(member.getName(), memberType, offset, access); + classType.addStaticMember(member.getName(), lineColPair, memberType, offset, access); }else{ - classType.addMember(member.getName(), memberType, offset, access); + classType.addMember(member.getName(), lineColPair, memberType, offset, access); } } @@ -195,10 +203,10 @@ public class TypeEntry } else{ if(staticMember){ - classType.addStaticMember(member.getName(), new UnknownType(member + classType.addStaticMember(member.getName(), lineColPair, new UnknownType(member .getName()), offset, access); }else{ - classType.addMember(member.getName(), new UnknownType(member + classType.addMember(member.getName(), lineColPair, new UnknownType(member .getName()), offset, access); } } @@ -247,6 +255,13 @@ public class TypeEntry offset = 0; // union } + LineColPair lineColPair; + try{ + lineColPair = new LineColPair(member.getDeclLine(), member.getDeclColumn()); + }catch(DwAttributeNotFoundException e){ + lineColPair = new LineColPair(-1,-1); + } + Access access = null; switch (member.getAttrConstant(DwAt.ACCESSIBILITY)) { case DwAccess.PUBLIC_: access = Access.PUBLIC; break; @@ -257,7 +272,7 @@ public class TypeEntry if (member.getTag() == DwTag.SUBPROGRAM) { Value v = getSubprogramValue(member); - classType.addMember(member.getName(), v.getType(), offset, + classType.addMember(member.getName(), lineColPair, v.getType(), offset, access); continue; } @@ -273,16 +288,16 @@ public class TypeEntry if (bitSize != -1) { int bitOffset = member .getAttrConstant(DwAt.BIT_OFFSET); - classType.addBitFieldMember(member.getName(), memberType, offset, access, + classType.addBitFieldMember(member.getName(), lineColPair, memberType, offset, access, bitOffset, bitSize); } else - classType.addMember(member.getName(), memberType, offset, access); + classType.addMember(member.getName(), lineColPair, memberType, offset, access); continue; } else - classType.addMember(member.getName(), new UnknownType(member + classType.addMember(member.getName(), lineColPair, new UnknownType(member .getName()), offset, access); } diff --git a/frysk-core/frysk/expr/TestbedSymTab.java b/frysk-core/frysk/expr/TestbedSymTab.java index 08326d7..7a96973 100644 --- a/frysk-core/frysk/expr/TestbedSymTab.java +++ b/frysk-core/frysk/expr/TestbedSymTab.java @@ -45,6 +45,7 @@ import inua.eio.ByteOrder; import java.util.List; import frysk.Config; +import frysk.scopes.LineColPair; import frysk.value.ObjectDeclaration; import frysk.value.Type; import frysk.value.Value; @@ -55,13 +56,14 @@ import frysk.value.ClassType; import frysk.value.ScratchLocation; class TestbedSymTab implements ExprSymTab { - + private final LineColPair scratchLineColPair = new LineColPair(0,0); + private Type classType = new ClassType(null, 12) - .addMember("alpha", StandardTypes.INT32B_T, 0, null) - .addMember("beta", StandardTypes.INT32B_T, 4, null) - .addMember("gamma", StandardTypes.INT16B_T, 8, null) - .addBitFieldMember("iota", StandardTypes.INT32B_T, 8, null, 16, 8) // 0x0000ff00 - .addBitFieldMember("epsilon", StandardTypes.INT32B_T, 8, null, 24, 8); // 0x000000ff + .addMember("alpha", scratchLineColPair, StandardTypes.INT32B_T, 0, null) + .addMember("beta", scratchLineColPair, StandardTypes.INT32B_T, 4, null) + .addMember("gamma", scratchLineColPair, StandardTypes.INT16B_T, 8, null) + .addBitFieldMember("iota", scratchLineColPair, StandardTypes.INT32B_T, 8, null, 16, 8) // 0x0000ff00 + .addBitFieldMember("epsilon", scratchLineColPair, StandardTypes.INT32B_T, 8, null, 24, 8); // 0x000000ff private byte[] buf = { 0x01, 0x02, 0x03, 0x04, // alpha 0x05, 0x06, 0x07, 0x08, // beta diff --git a/frysk-core/frysk/scopes/ChangeLog b/frysk-core/frysk/scopes/ChangeLog index 9e8a0c0..4615e8a 100644 --- a/frysk-core/frysk/scopes/ChangeLog +++ b/frysk-core/frysk/scopes/ChangeLog @@ -1,3 +1,7 @@ +2007-12-11 Sami Wagiaalla <swagiaal@redhat.com> + + * LineColPair.java: New. + 2007-12-10 Sami Wagiaalla <swagiaal@redhat.com> * TestDie.java (testGetDefinition): New test. diff --git a/frysk-core/frysk/symtab/UnknownSymbol.java b/frysk-core/frysk/scopes/LineColPair.java similarity index 88% copy from frysk-core/frysk/symtab/UnknownSymbol.java copy to frysk-core/frysk/scopes/LineColPair.java index 13ca331..3fe6c14 100644 --- a/frysk-core/frysk/symtab/UnknownSymbol.java +++ b/frysk-core/frysk/scopes/LineColPair.java @@ -37,19 +37,23 @@ // version and license this file solely under the GPL without // exception. -package frysk.symtab; +package frysk.scopes; -/** - * An unknown-symbol; a singleton. - */ +public class LineColPair { -class UnknownSymbol - extends Symbol -{ - UnknownSymbol() { - super.symbol(0, -1, "[unknown]"); + private final long line; + private final int col; + + public LineColPair(long line, int col){ + this.line = line; + this.col = col; } - public String getDemangledName () { - return "[unknown]"; + + public long getLine(){ + return line; + } + + public int getCol(){ + return this.col; } } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index d0c1c9c..2572fde 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,12 @@ +007-12-11 Sami Wagiaalla <swagiaal@redhat.com> + + * CompositeType.java: Member now has a LineColPair element. + Constructors and add functions now take LineColPair argument. + * ObjectDeclaration.java (getLineCol): New. + * Variable.java: Now uses LineColPair. + * EnumType.java: Updated. + * TestComposite.java: Updated. + 2007-12-11 Teresa Thomas <tthomas@redhat.com> * TestBigFloatingPoint.java: Add test for 80 diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index fbf14ce..a39148b 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -40,12 +40,15 @@ package frysk.value; import inua.eio.ByteBuffer; + +import java.io.PrintWriter; import java.util.ArrayList; -import java.util.List; -import java.util.Map; import java.util.HashMap; import java.util.Iterator; -import java.io.PrintWriter; +import java.util.List; +import java.util.Map; + +import frysk.scopes.LineColPair; /** * Type for a composite object. @@ -55,6 +58,7 @@ public abstract class CompositeType { public static class Member{ + private final LineColPair lineColPair; final int index; final String name; final Type type; @@ -63,7 +67,7 @@ public abstract class CompositeType final int bitOffset; final int bitSize; - public Member(int index, String name, Type type, Access access,int bitOffset, int bitSize, + public Member(int index, String name, LineColPair lineColPair, Type type, Access access,int bitOffset, int bitSize, boolean inheritance) { this.index = index; this.type = type; @@ -72,19 +76,24 @@ public abstract class CompositeType this.inheritance = inheritance; this.bitOffset = bitOffset; this.bitSize = bitSize; + this.lineColPair = lineColPair; } public String getName(){ return this.name; } + + public LineColPair getLinCol(){ + return this.lineColPair; + } } public static class StaticMember extends Member{ - public StaticMember(int index, String name, Type type, Access access, + public StaticMember(int index, String name, LineColPair lineColPair, Type type, Access access, int bitOffset, int bitSize, boolean inheritance) { - super(index, name, type, access, bitOffset, bitSize, inheritance); + super(index, name, lineColPair, type, access, bitOffset, bitSize, inheritance); } } @@ -95,10 +104,10 @@ public abstract class CompositeType public static class DynamicMember extends Member{ // XXX: To keep getValue working. final long offset; - DynamicMember(int index, String name, Type type, long offset, Access access, + DynamicMember(int index, String name, LineColPair lineColPair, Type type, long offset, Access access, int bitOffset, int bitSize, boolean inheritance) { - super(index, name, type, access, bitOffset, bitSize, inheritance); + super(index, name, lineColPair, type, access, bitOffset, bitSize, inheritance); this.offset = offset; } @@ -172,38 +181,38 @@ public abstract class CompositeType return this; } - public CompositeType addMember(String name, Type type, long offset, + public CompositeType addMember(String name, LineColPair lineColPair, Type type, long offset, Access access) { - DynamicMember member = new DynamicMember(members.size(),name, type, offset, access, -1, -1,false); + DynamicMember member = new DynamicMember(members.size(),name, lineColPair, type, offset, access, -1, -1,false); return addMemberToMap(member); } - public CompositeType addBitFieldMember(String name, Type type, long offset, + public CompositeType addBitFieldMember(String name, LineColPair lineColPair, Type type, long offset, Access access, int bitOffset, int bitLength) { type = type.pack(bitOffset, bitLength); - DynamicMember member = new DynamicMember(members.size(),name, type, offset, access, bitOffset, bitLength,false); + DynamicMember member = new DynamicMember(members.size(),name, lineColPair, type, offset, access, bitOffset, bitLength,false); return addMemberToMap(member); } - public CompositeType addInheritance(String name, Type type, long offset, + public CompositeType addInheritance(String name, LineColPair lineColPair, Type type, long offset, Access access) { - DynamicMember member = new DynamicMember(members.size(),name, type, offset, access, -1,-1,true); + DynamicMember member = new DynamicMember(members.size(),name, lineColPair, type, offset, access, -1,-1,true); return addMemberToMap(member); } - public CompositeType addStaticMember(String name, Type type, long offset, + public CompositeType addStaticMember(String name, LineColPair lineColPair, Type type, long offset, Access access){ - StaticMember member = new StaticMember(members.size(), name, type, + StaticMember member = new StaticMember(members.size(), name, lineColPair, type, access, -1, -1, false); return addMemberToMap(member); } - public CompositeType addStaticBitFieldMember(String name, Type type, long offset, + public CompositeType addStaticBitFieldMember(String name, LineColPair lineColPair, Type type, long offset, Access access, int bitOffset, int bitLength) { type = type.pack(bitOffset, bitLength); - StaticMember member = new StaticMember(members.size(), name, type, + StaticMember member = new StaticMember(members.size(), name, lineColPair, type, access, -1, -1, false); return addMemberToMap(member); } diff --git a/frysk-core/frysk/value/EnumType.java b/frysk-core/frysk/value/EnumType.java index 872be47..de97044 100644 --- a/frysk-core/frysk/value/EnumType.java +++ b/frysk-core/frysk/value/EnumType.java @@ -50,6 +50,7 @@ import java.util.TreeMap; import frysk.debuginfo.DebugInfoFrame; import frysk.isa.ISA; +import frysk.scopes.LineColPair; /** * Type for an enum. @@ -77,6 +78,13 @@ public class EnumType extends IntegerTypeDecorator public Value getValue(DebugInfoFrame frame) { return value; } + + public LineColPair getLineCol() { + //XXX enumber members do not have LineCol information + // should they inheret the LineCol information of the containing + // enumber type ? + return null; + } } // Mapping from a Value to a member (ordered by Value (a big diff --git a/frysk-core/frysk/value/ObjectDeclaration.java b/frysk-core/frysk/value/ObjectDeclaration.java index 9f83ef9..b54d2ee 100644 --- a/frysk-core/frysk/value/ObjectDeclaration.java +++ b/frysk-core/frysk/value/ObjectDeclaration.java @@ -41,10 +41,14 @@ package frysk.value; import frysk.debuginfo.DebugInfoFrame; import frysk.isa.ISA; +import frysk.scopes.LineColPair; public abstract class ObjectDeclaration { public abstract String getName(); public abstract Value getValue(DebugInfoFrame frame); public abstract Type getType(ISA isa); + + public abstract LineColPair getLineCol(); + } diff --git a/frysk-core/frysk/value/TestComposite.java b/frysk-core/frysk/value/TestComposite.java index fef157e..ecd28a1 100644 --- a/frysk-core/frysk/value/TestComposite.java +++ b/frysk-core/frysk/value/TestComposite.java @@ -41,6 +41,7 @@ package frysk.value; import inua.eio.ByteOrder; import frysk.junit.TestCase; +import frysk.scopes.LineColPair; public class TestComposite extends TestCase @@ -49,17 +50,18 @@ public class TestComposite private Type littleInt32 = new SignedType("int32_t", ByteOrder.LITTLE_ENDIAN, 4); private Type bigInt16 = new SignedType("int16_t", ByteOrder.BIG_ENDIAN, 2); private Type littleInt16 = new SignedType("int16_t", ByteOrder.LITTLE_ENDIAN, 2); - + + private final LineColPair scratchLineColPair = new LineColPair(0,0); /** * struct {int; int; short; int:8; int:8;} */ public void testBigStructure () { CompositeType classType = new ClassType(null, 12) - .addMember("alpha", bigInt32, 0, null) - .addMember("beta", bigInt32, 4, null) - .addMember("gamma", bigInt16, 8, null) - .addBitFieldMember("iota", bigInt32, 8, null, 16, 8) // 0x0000ff00 - .addBitFieldMember("epsilon", bigInt32, 8, null, 24, 8); // 0x000000ff + .addMember("alpha", scratchLineColPair, bigInt32, 0, null) + .addMember("beta", scratchLineColPair, bigInt32, 4, null) + .addMember("gamma", scratchLineColPair, bigInt16, 8, null) + .addBitFieldMember("iota", scratchLineColPair, bigInt32, 8, null, 16, 8) // 0x0000ff00 + .addBitFieldMember("epsilon", scratchLineColPair, bigInt32, 8, null, 24, 8); // 0x000000ff byte[] buf = { 0x01, 0x02, 0x03, 0x04, // alpha 0x05, 0x06, 0x07, 0x08, // beta @@ -74,11 +76,11 @@ public class TestComposite */ public void testLittleStructure () { CompositeType classType = new ClassType(null, 12) - .addMember("alpha", littleInt32, 0, null) - .addMember("beta", littleInt32, 4, null) - .addMember("gamma", littleInt16, 8, null) - .addBitFieldMember("iota", littleInt32, 8, null, 8, 8) // 0x00ff0000 - .addBitFieldMember("epsilon", littleInt32, 8, null, 0, 8); // 0xff000000 + .addMember("alpha", scratchLineColPair, littleInt32, 0, null) + .addMember("beta", scratchLineColPair, littleInt32, 4, null) + .addMember("gamma", scratchLineColPair, littleInt16, 8, null) + .addBitFieldMember("iota", scratchLineColPair, littleInt32, 8, null, 8, 8) // 0x00ff0000 + .addBitFieldMember("epsilon", scratchLineColPair, littleInt32, 8, null, 0, 8); // 0xff000000 byte[] buf = { 0x01, 0x02, 0x03, 0x04, // alpha 0x05, 0x06, 0x07, 0x08, // beta @@ -93,14 +95,14 @@ public class TestComposite */ public void testNextedStructure () { CompositeType classType = new ClassType(null, 12) - .addMember("a", new ClassType(null, 8) - .addMember("alpha", littleInt32, 0, null) - .addMember("beta", littleInt32, 4, null), + .addMember("a", scratchLineColPair, new ClassType(null, 8) + .addMember("alpha", scratchLineColPair, littleInt32, 0, null) + .addMember("beta", scratchLineColPair, littleInt32, 4, null), 0, null) - .addMember("b", new ClassType(null, 4) - .addMember("gamma", littleInt16, 0, null) - .addBitFieldMember("iota", littleInt32, 0, null, 8, 8) // 0x00ff0000 - .addBitFieldMember("epsilon", littleInt32, 0, null, 0, 8), // 0xff000000 + .addMember("b", scratchLineColPair, new ClassType(null, 4) + .addMember("gamma", scratchLineColPair, littleInt16, 0, null) + .addBitFieldMember("iota", scratchLineColPair, littleInt32, 0, null, 8, 8) // 0x00ff0000 + .addBitFieldMember("epsilon", scratchLineColPair, littleInt32, 0, null, 0, 8), // 0xff000000 8, null); byte[] buf = { 0x01, 0x02, 0x03, 0x04, // alpha @@ -116,14 +118,14 @@ public class TestComposite */ public void testNamelessFields () { CompositeType classType = new ClassType(null, 12) - .addMember(null, new ClassType(null, 8) - .addMember(null, littleInt32, 0, null) - .addMember(null, littleInt32, 4, null), + .addMember(null, scratchLineColPair, new ClassType(null, 8) + .addMember(null, scratchLineColPair, littleInt32, 0, null) + .addMember(null, scratchLineColPair, littleInt32, 4, null), 0, null) - .addMember(null, new ClassType(null, 4) - .addMember(null, littleInt16, 0, null) - .addBitFieldMember(null, littleInt32, 0, null, 8, 8) // 0x00ff0000 hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2007-12-11 17:39 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20071211173910.10966.qmail@sourceware.org \ --to=swagiaal@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).