You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It seens a break there at line 432 in DwarfCompilationUnit.cs that break the loop to collect all the symbols
foreach(DataDescriptionAttributedescriptionAttributeindescription.Attributes){DwarfAttributeValueattributeValue=newDwarfAttributeValue();DwarfAttributeattribute=descriptionAttribute.Attribute;DwarfFormatformat=descriptionAttribute.Format;switch(format){caseDwarfFormat.Address:attributeValue.Type=DwarfAttributeValueType.Address;attributeValue.Value=debugData.ReadUlong(addressSize);break;caseDwarfFormat.Block:attributeValue.Type=DwarfAttributeValueType.Block;attributeValue.Value=debugData.ReadBlock(debugData.ULEB128());break;caseDwarfFormat.Block1:attributeValue.Type=DwarfAttributeValueType.Block;attributeValue.Value=debugData.ReadBlock(debugData.ReadByte());break;caseDwarfFormat.Block2:attributeValue.Type=DwarfAttributeValueType.Block;attributeValue.Value=debugData.ReadBlock(debugData.ReadUshort());break;caseDwarfFormat.Block4:attributeValue.Type=DwarfAttributeValueType.Block;attributeValue.Value=debugData.ReadBlock(debugData.ReadUint());break;caseDwarfFormat.Data1:attributeValue.Type=DwarfAttributeValueType.Constant;attributeValue.Value=(ulong)debugData.ReadByte();break;caseDwarfFormat.Data2:attributeValue.Type=DwarfAttributeValueType.Constant;attributeValue.Value=(ulong)debugData.ReadUshort();break;caseDwarfFormat.Data4:attributeValue.Type=DwarfAttributeValueType.Constant;attributeValue.Value=(ulong)debugData.ReadUint();break;caseDwarfFormat.Data8:attributeValue.Type=DwarfAttributeValueType.Constant;attributeValue.Value=debugData.ReadUlong();break;caseDwarfFormat.Data16:attributeValue.Type=DwarfAttributeValueType.Constant;attributeValue.Value=debugData.ReadBlock(16);break;caseDwarfFormat.SData:attributeValue.Type=DwarfAttributeValueType.Constant;attributeValue.Value=(ulong)debugData.SLEB128();break;caseDwarfFormat.UData:attributeValue.Type=DwarfAttributeValueType.Constant;attributeValue.Value=(ulong)debugData.ULEB128();break;caseDwarfFormat.String:attributeValue.Type=DwarfAttributeValueType.String;attributeValue.Value=debugData.ReadString();break;caseDwarfFormat.LineStrp:attributeValue.Type=DwarfAttributeValueType.String;intoffsetStrp=debugData.ReadOffset(is64bit);attributeValue.Value=debugLineStrings.ReadString(offsetStrp);break;caseDwarfFormat.Strp:attributeValue.Type=DwarfAttributeValueType.String;offsetStrp=debugData.ReadOffset(is64bit);attributeValue.Value=debugStrings.ReadString(offsetStrp);break;caseDwarfFormat.StrpSup:attributeValue.Type=DwarfAttributeValueType.String;// NOTE: we don't support locating this value currently.attributeValue.Offset=(ulong)debugData.ReadOffset(is64bit);break;caseDwarfFormat.Flag:attributeValue.Type=DwarfAttributeValueType.Flag;attributeValue.Value=debugData.ReadByte()!=0;break;caseDwarfFormat.FlagPresent:attributeValue.Type=DwarfAttributeValueType.Flag;attributeValue.Value=true;break;caseDwarfFormat.Ref1:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Value=debugData.ReadByte()+(ulong)beginPosition;break;caseDwarfFormat.Ref2:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Value=debugData.ReadUshort()+(ulong)beginPosition;break;caseDwarfFormat.Ref4:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Value=debugData.ReadUint()+(ulong)beginPosition;break;caseDwarfFormat.Ref8:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Value=debugData.ReadUlong()+(ulong)beginPosition;break;caseDwarfFormat.RefUData:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Value=debugData.ULEB128()+(ulong)beginPosition;break;caseDwarfFormat.RefAddr:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Value=(ulong)debugData.ReadOffset(is64bit);break;caseDwarfFormat.RefSig8:attributeValue.Type=DwarfAttributeValueType.Invalid;debugData.Position+=8;break;caseDwarfFormat.RefSup4:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Offset=debugData.ReadUint();// We don't resolve this reference from supplemental data yet.break;caseDwarfFormat.RefSup8:attributeValue.Type=DwarfAttributeValueType.Reference;attributeValue.Offset=debugData.ReadUlong();// We don't resolve this reference from supplemental data yet.break;caseDwarfFormat.ExpressionLocation:attributeValue.Type=DwarfAttributeValueType.ExpressionLocation;attributeValue.Value=debugData.ReadBlock(debugData.ULEB128());break;caseDwarfFormat.SecOffset:attributeValue.Type=DwarfAttributeValueType.SecOffset;attributeValue.Value=(ulong)debugData.ReadOffset(is64bit);if(attribute==DwarfAttribute.RankStrOffsetsBase){indexOffset=(int)((ulong)attributeValue.Value/(ulong)(is64bit?8:4));}break;caseDwarfFormat.ImplicitConst:attributeValue.Value=descriptionAttribute.Value;break;caseDwarfFormat.Strx:caseDwarfFormat.GNUStrIndex:attributeValue.Type=DwarfAttributeValueType.String;attributeValue.Offset=debugData.ULEB128();break;caseDwarfFormat.Strx1:attributeValue.Type=DwarfAttributeValueType.String;attributeValue.Offset=debugData.ReadByte();break;caseDwarfFormat.Strx2:attributeValue.Type=DwarfAttributeValueType.String;attributeValue.Offset=debugData.ReadUshort();break;caseDwarfFormat.Strx3:attributeValue.Type=DwarfAttributeValueType.String;attributeValue.Offset=debugData.ReadThreeBytes();break;caseDwarfFormat.Strx4:attributeValue.Type=DwarfAttributeValueType.String;attributeValue.Offset=debugData.ReadUint();break;caseDwarfFormat.Addrx:attributeValue.Type=DwarfAttributeValueType.Address;attributeValue.Value=debugData.ULEB128()+(ulong)beginPosition;break;// NOTE: we don't resolve any of these new DWARF5 address values yet.caseDwarfFormat.Addrx1:attributeValue.Type=DwarfAttributeValueType.Address;attributeValue.Offset=debugData.ReadByte();break;caseDwarfFormat.Addrx2:attributeValue.Type=DwarfAttributeValueType.Address;attributeValue.Offset=debugData.ReadUshort();break;caseDwarfFormat.Addrx3:attributeValue.Type=DwarfAttributeValueType.Address;attributeValue.Offset=debugData.ReadThreeBytes();break;caseDwarfFormat.Addrx4:attributeValue.Type=DwarfAttributeValueType.Address;attributeValue.Offset=debugData.ReadUlong();break;caseDwarfFormat.Rnglistx:attributeValue.Type=DwarfAttributeValueType.SecOffset;attributeValue.Value=debugData.ULEB128();break;caseDwarfFormat.GNUAddrIndex:break;default:thrownewInvalidOperationException($"{attribute} : {format}");}if(attributes.ContainsKey(attribute)){if(attributes[attribute]!=attributeValue){attributes[attribute]=attributeValue;}}else{attributes.Add(attribute,attributeValue);}}if(indexOffset>-1){foreach(DwarfAttributeValuedwarfAttributeValueinattributes.Values){if(dwarfAttributeValue.Offset==null||dwarfAttributeValue.Type!=DwarfAttributeValueType.String){// We current do not post-process all address types.continue;}intdebugStringOffsetIndex=Convert.ToInt32(dwarfAttributeValue.Value)+indexOffset;intoffset=debugStringOffsets[debugStringOffsetIndex];dwarfAttributeValue.Value=debugStrings.ReadString(offset);}}DwarfSymbolsymbol=newDwarfSymbol(){Tag=description.Tag,Attributes=attributes,Offset=dataPosition,};symbolsByOffset.Add(symbol.Offset,symbol);if(parents.Count>0){parents.Peek().Children.Add(symbol);symbol.Parent=parents.Peek();}else{symbols.Add(symbol);}if(description.HasChildren){symbol.Children=newList<DwarfSymbol>();parents.Push(symbol);}break;// a wrong break here}
The text was updated successfully, but these errors were encountered:
It seens a
break
there at line 432 inDwarfCompilationUnit.cs
that break the loop to collect all the symbolsThe text was updated successfully, but these errors were encountered: