This is the mail archive of the
frysk-cvs@sources.redhat.com
mailing list for the frysk project.
[SCM] master: swagiaal: Created and used LineColPair for representing line col information
- From: swagiaal at sourceware dot org
- To: frysk-cvs at sourceware dot org
- Date: 11 Dec 2007 17:39:10 -0000
- Subject: [SCM] master: swagiaal: Created and used LineColPair for representing line col information
- Reply-to: frysk at sourceware dot org
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