public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: npremji@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Ran formatter on frysk-core/frysk/debuginfo/TypEntry. Date: Mon, 14 Jan 2008 14:06:00 -0000 [thread overview] Message-ID: <20080114140639.6162.qmail@sourceware.org> (raw) The branch, master has been updated via 3711e3c9678398de190c012d3a0d28089d00e3d2 (commit) from c02d1bd3109ef0406be508fc08426e75b1b6fe07 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3711e3c9678398de190c012d3a0d28089d00e3d2 Author: Nurdin Premji <nurdin@localhost.localdomain> Date: Mon Jan 14 09:06:23 2008 -0500 Ran formatter on frysk-core/frysk/debuginfo/TypEntry. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 + frysk-core/frysk/debuginfo/TypeEntry.java | 363 +++++++++++++++-------------- 2 files changed, 193 insertions(+), 174 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 3721f0d..71c4418 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2008-01-14 Nurdin Premji <npremji@redhat.com> + + * TypeEntry.java: Ran formatter. + 2008-01-13 Stan Cox <scox@redhat.com> * DebugInfoFrame.java (getLine): Consider SYSROOT. diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 3ad41da..342c34f 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -10,11 +10,11 @@ // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. -// +// // You should have received a copy of the GNU General Public License // along with FRYSK; if not, write to the Free Software Foundation, // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// +// // In addition, as a special exception, Red Hat, Inc. gives You the // additional right to link the code of FRYSK with code not covered // under the GNU General Public License ("Non-GPL Code") and to @@ -76,14 +76,13 @@ import lib.dwfl.DwAttributeNotFoundException; import lib.dwfl.DwTag; import lib.dwfl.DwarfDie; -public class TypeEntry -{ +public class TypeEntry { static protected Log fine = Log.fine(TypeEntry.class); static protected Log finest = Log.finest(TypeEntry.class); private final ByteOrder byteorder; private final HashMap dieHash; - public TypeEntry (ISA isa) { + public TypeEntry(ISA isa) { this.byteorder = isa.order(); this.dieHash = new HashMap(); } @@ -91,13 +90,13 @@ public class TypeEntry private int getByteSize(DwarfDie die) { return die.getAttrConstant(DwAt.BYTE_SIZE); } - - private void dumpDie(String s, DwarfDie die) - { -// System.out.println(s + Long.toHexString(die.getOffset()) + " " -// + DwTag.toName(die.getTag().hashCode()) -// + " " + die.getName()); + + private void dumpDie(String s, DwarfDie die) { + // System.out.println(s + Long.toHexString(die.getOffset()) + " " + // + DwTag.toName(die.getTag().hashCode()) + // + " " + die.getName()); } + /** * @param dieType * An array die @@ -111,111 +110,122 @@ public class TypeEntry dumpDie("subrange=", subrange); ArrayList dims = new ArrayList(); while (subrange != null) { - int arrDim = subrange - .getAttrConstant(DwAt.UPPER_BOUND); + int arrDim = subrange.getAttrConstant(DwAt.UPPER_BOUND); dims.add(new Integer(arrDim)); subrange = subrange.getSibling(); elementCount *= arrDim + 1; } ArrayType arrayType = null; - Type type = getType (dieType); + Type type = getType(dieType); int typeSize = type.getSize(); arrayType = new ArrayType(type, elementCount * typeSize, dims); return arrayType; } - - + private void addMembers(DwarfDie classDie, CompositeType classType) { LocationExpression locationExpression = null; - - for (DwarfDie member = classDie.getChild(); - member != null; - member = member.getSibling()) { - - dumpDie("member=", member); - - boolean staticMember = false; - long offset; - try { - offset = member.getDataMemberLocation(); - } catch (DwAttributeNotFoundException de) { - offset = 0; // union - staticMember = true; - if(member.isDeclaration()){ - locationExpression = new LocationExpression(member.getDefinition()); - }else{ - locationExpression = new LocationExpression(member); - } - } - - SourceLocation sourceLocation; - try{ - sourceLocation = new SourceLocation(member.getDeclFile(), member.getDeclLine(), member.getDeclColumn()); - }catch(DwAttributeNotFoundException e){ - sourceLocation = SourceLocation.UNKNOWN; - } - - Access access = null; - switch (member.getAttrConstant(DwAt.ACCESSIBILITY)) { - case DwAccess.PUBLIC_: access = Access.PUBLIC; break; - case DwAccess.PROTECTED_: access = Access.PROTECTED; break; - case DwAccess.PRIVATE_: access = Access.PRIVATE; break; - } - - if (member.getTag() == DwTag.SUBPROGRAM) { - Value v = getSubprogramValue(member); - if(hasArtifitialParameter(member)){ - classType.addMember(member.getName(), sourceLocation, v.getType(), offset, access); - }else{ - classType.addStaticMember(locationExpression, member.getName(), sourceLocation, v.getType(), offset, access); - } - continue; - } - -// DwarfDie memberDieType = member.getUltimateType(); -// if (memberDieType == null) -// continue; - - Type memberType = getType (member.getType()); - if (memberType instanceof UnknownType == false) { - // System V ABI Supplements discuss bit field layout - int bitSize = member - .getAttrConstant(DwAt.BIT_SIZE); - if (bitSize != -1) { - int bitOffset = member - .getAttrConstant(DwAt.BIT_OFFSET); - if(staticMember){ - classType.addStaticBitFieldMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access, - bitOffset, bitSize); - }else{ - classType.addBitFieldMember(member.getName(), sourceLocation, memberType, offset, access, - bitOffset, bitSize); + for (DwarfDie member = classDie.getChild(); + member != null; + member = member.getSibling()) { + + dumpDie("member=", member); + + boolean staticMember = false; + long offset; + try { + offset = member.getDataMemberLocation(); + } catch (DwAttributeNotFoundException de) { + offset = 0; // union + staticMember = true; + if (member.isDeclaration()) { + locationExpression = new LocationExpression(member + .getDefinition()); + } else { + locationExpression = new LocationExpression(member); + } + } - } - else{ - if(staticMember){ - classType.addStaticMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access); - }else{ - classType.addMember(member.getName(), sourceLocation, memberType, offset, access); + + SourceLocation sourceLocation; + try { + sourceLocation = new SourceLocation(member.getDeclFile(), + member.getDeclLine(), member.getDeclColumn()); + } catch (DwAttributeNotFoundException e) { + sourceLocation = SourceLocation.UNKNOWN; + } + + Access access = null; + switch (member.getAttrConstant(DwAt.ACCESSIBILITY)) { + case DwAccess.PUBLIC_: + access = Access.PUBLIC; + break; + case DwAccess.PROTECTED_: + access = Access.PROTECTED; + break; + case DwAccess.PRIVATE_: + access = Access.PRIVATE; + break; + } + + if (member.getTag() == DwTag.SUBPROGRAM) { + Value v = getSubprogramValue(member); + if (hasArtifitialParameter(member)) { + classType.addMember(member.getName(), sourceLocation, v + .getType(), offset, access); + } else { + classType.addStaticMember(locationExpression, member + .getName(), sourceLocation, v.getType(), offset, + access); + } + continue; + } + + // DwarfDie memberDieType = member.getUltimateType(); + // if (memberDieType == null) + // continue; + + Type memberType = getType(member.getType()); + if (memberType instanceof UnknownType == false) { + // System V ABI Supplements discuss bit field layout + int bitSize = member.getAttrConstant(DwAt.BIT_SIZE); + if (bitSize != -1) { + int bitOffset = member.getAttrConstant(DwAt.BIT_OFFSET); + if (staticMember) { + classType.addStaticBitFieldMember(locationExpression, + member.getName(), sourceLocation, memberType, + offset, access, bitOffset, bitSize); + } else { + classType.addBitFieldMember(member.getName(), + sourceLocation, memberType, offset, access, + bitOffset, bitSize); + } + } else { + if (staticMember) { + classType.addStaticMember(locationExpression, member + .getName(), sourceLocation, memberType, offset, + access); + } else { + classType.addMember(member.getName(), sourceLocation, + memberType, offset, access); + } + + } + continue; + } else { + if (staticMember) { + classType.addStaticMember(locationExpression, member + .getName(), sourceLocation, new UnknownType(member + .getName()), offset, access); + } else { + classType.addMember(member.getName(), sourceLocation, + new UnknownType(member.getName()), offset, access); + } } - - } - continue; - } - else{ - if(staticMember){ - classType.addStaticMember(locationExpression, member.getName(), sourceLocation, new UnknownType(member - .getName()), offset, access); - }else{ - classType.addMember(member.getName(), sourceLocation, new UnknownType(member - .getName()), offset, access); } } -} - } - + /** * @param classDie * A struct die @@ -223,13 +233,15 @@ public class TypeEntry * Name of the struct * @return GccStructOrClassType for the struct */ - public CompositeType getGccStructOrClassType(DwarfDie classDie, String name) { + public CompositeType getGccStructOrClassType(DwarfDie classDie, + String name) { dumpDie("structOrClassDie=", classDie); CompositeType type; String compiler = classDie.getProducer(); - boolean supportsClassType = CompilerVersionFactory.getCompilerVersion(compiler).supportsClassType(); + boolean supportsClassType = CompilerVersionFactory.getCompilerVersion( + compiler).supportsClassType(); fine.log("Compiler support determined as:" + supportsClassType); /* @@ -246,55 +258,58 @@ public class TypeEntry return type; } - + /** * * @param classDie - * A class die - * @param name - * Name of the class + * A class die + * @param name + * Name of the class * @return ClassType for the class. */ public ClassType getClassType(DwarfDie classDie, String name) { dumpDie("classDie=", classDie); - + ClassType classType = new ClassType(name, getByteSize(classDie)); addMembers(classDie, classType); return classType; } /** - * Return true of the given die represents a - * subprogram or inlined subroutine + * Return true of the given die represents a subprogram or inlined + * subroutine + * * @param die - * @return + * @return */ - private boolean hasArtifitialParameter(DwarfDie die){ + private boolean hasArtifitialParameter(DwarfDie die) { if (die == null - || !(die.getTag().equals(DwTag.SUBPROGRAM) || - die.getTag().equals(DwTag.INLINED_SUBROUTINE))) { - throw new IllegalArgumentException("Die [" + die + "] is not" + - " a subprogram or inlined subroutine die"); + || !(die.getTag().equals(DwTag.SUBPROGRAM) || die.getTag() + .equals(DwTag.INLINED_SUBROUTINE))) { + throw new IllegalArgumentException("Die [" + die + "] is not" + + " a subprogram or inlined subroutine die"); } DwarfDie param = die.getChild(); - while (param != null - && param.getTag().equals(DwTag.FORMAL_PARAMETER)) { + while (param != null && + param.getTag().equals(DwTag.FORMAL_PARAMETER)) { if (param.getAttrBoolean((DwAt.ARTIFICIAL)) == true) { return true; - } + } param = param.getSibling(); } return false; } - + // ??? Reduce getGccStructOrClassType/getUnionType duplication public UnionType getUnionType(DwarfDie classDie, String name) { dumpDie("unionDie=", classDie); UnionType classType = new UnionType(name, getByteSize(classDie)); - for (DwarfDie member = classDie.getChild(); member != null; member = member - .getSibling()) { + for (DwarfDie member = classDie.getChild(); + member != null; + member = member.getSibling()) { + dumpDie("member=", member); long offset; try { @@ -304,54 +319,58 @@ public class TypeEntry } SourceLocation lineColPair; - try{ - lineColPair = new SourceLocation(member.getDeclFile(),member.getDeclLine(), member.getDeclColumn()); - }catch(DwAttributeNotFoundException e){ + try { + lineColPair = new SourceLocation(member.getDeclFile(), member + .getDeclLine(), member.getDeclColumn()); + } catch (DwAttributeNotFoundException e) { lineColPair = SourceLocation.UNKNOWN; } - + Access access = null; switch (member.getAttrConstant(DwAt.ACCESSIBILITY)) { - case DwAccess.PUBLIC_: access = Access.PUBLIC; break; - case DwAccess.PROTECTED_: access = Access.PROTECTED; break; - case DwAccess.PRIVATE_: access = Access.PRIVATE; break; + case DwAccess.PUBLIC_: + access = Access.PUBLIC; + break; + case DwAccess.PROTECTED_: + access = Access.PROTECTED; + break; + case DwAccess.PRIVATE_: + access = Access.PRIVATE; + break; } DwarfDie memberDieType = member.getUltimateType(); if (member.getTag() == DwTag.SUBPROGRAM) { Value v = getSubprogramValue(member); - classType.addMember(member.getName(), lineColPair, v.getType(), offset, - access); + classType.addMember(member.getName(), lineColPair, v.getType(), + offset, access); continue; } - + if (memberDieType == null) continue; - Type memberType = getType (member.getType()); + Type memberType = getType(member.getType()); if (memberType instanceof UnknownType == false) { // System V ABI Supplements discuss bit field layout - int bitSize = member - .getAttrConstant(DwAt.BIT_SIZE); + int bitSize = member.getAttrConstant(DwAt.BIT_SIZE); if (bitSize != -1) { - int bitOffset = member - .getAttrConstant(DwAt.BIT_OFFSET); - classType.addBitFieldMember(member.getName(), lineColPair, memberType, offset, access, - bitOffset, bitSize); - } - else - classType.addMember(member.getName(), lineColPair, memberType, offset, access); - + int bitOffset = member.getAttrConstant(DwAt.BIT_OFFSET); + classType.addBitFieldMember(member.getName(), lineColPair, + memberType, offset, access, bitOffset, bitSize); + } else + classType.addMember(member.getName(), lineColPair, + memberType, offset, access); + continue; - } - else - classType.addMember(member.getName(), lineColPair, new UnknownType(member - .getName()), offset, access); + } else + classType.addMember(member.getName(), lineColPair, + new UnknownType(member.getName()), offset, access); } return classType; } - + /** * @param varDie * The die for a symbol corresponding to a function @@ -368,10 +387,11 @@ public class TypeEntry if (varDie.getUltimateType() != null) { type = getType(varDie.getType()); } - FunctionType functionType = new FunctionType(varDie.getName(), type); + FunctionType functionType = new FunctionType(varDie.getName(), + type); DwarfDie parm = varDie.getChild(); - while (parm != null - && parm.getTag().equals(DwTag.FORMAL_PARAMETER)) { + while (parm != null && + parm.getTag().equals(DwTag.FORMAL_PARAMETER)) { if (parm.getAttrBoolean((DwAt.ARTIFICIAL)) == false) { type = getType(parm); functionType.addParameter(type, parm.getName()); @@ -384,7 +404,6 @@ public class TypeEntry return new Value(new UnknownType(varDie.getName())); } - /** * @param varDie * This symbol's die @@ -401,25 +420,24 @@ public class TypeEntry || typeDie.getTag().equals(DwTag.VARIABLE)) { type = typeDie.getType(); dumpDie("getType type=", type); - } - else + } else type = typeDie; - Type mappedType = (Type)dieHash.get(new Long(type.getOffset())); + Type mappedType = (Type) dieHash.get(new Long(type.getOffset())); if (mappedType != null) return mappedType; else if (dieHash.containsKey(new Long(type.getOffset()))) { // ??? will this always be a pointer to ourselves? // Instead of VoidType, we need a way to reference ourselves - return new PointerType("", byteorder, getByteSize(type), + return new PointerType("", byteorder, getByteSize(type), hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-01-14 14:06 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=20080114140639.6162.qmail@sourceware.org \ --to=npremji@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).