internal virtual void SetObject(TargetMemoryAccess target, TargetLocation location, TargetObject obj) { if (obj == null) { if (IsByRef) { location.WriteAddress(target, TargetAddress.Null); return; } throw new InvalidOperationException(); } if (IsByRef) { if (obj.Type.IsByRef) { location.WriteAddress(target, obj.Location.GetAddress(target)); return; } throw new InvalidOperationException(); } if (!HasFixedSize || !obj.Type.HasFixedSize) { throw new InvalidOperationException(); } if (Size != obj.Type.Size) { throw new InvalidOperationException(); } byte[] contents = obj.Location.ReadBuffer(target, obj.Type.Size); location.WriteBuffer(target, contents); }
internal TargetNullableObject(TargetNullableType type, TargetLocation location) : base(type, location) { this.Type = type; }
protected override TargetObject DoGetObject(TargetMemoryAccess target, TargetLocation location) { return new TargetEnumObject (this, location); }
internal TargetObject(TargetType type, TargetLocation location) { this.type = type; this.Location = location; this.type_name = type.Name; }
internal override long GetDynamicSize(TargetMemoryAccess target, TargetBlob blob, TargetLocation location, out TargetLocation dynamic_location) { throw new InvalidOperationException (); }
public DereferencedTargetLocation(TargetLocation reference) { this.reference = reference; }
internal TargetObjectObject(TargetObjectType type, TargetLocation location) : base(type, location) { this.Type = type; }
internal TargetNullableObject(TargetNullableType type, TargetLocation location) : base(type, location) { this.Type = type; }
protected abstract TargetObject DoGetObject(TargetMemoryAccess target, TargetLocation location);
internal TargetObject GetObject(TargetMemoryAccess target, TargetLocation location) { return(DoGetObject(target, location)); }
internal TargetArrayObject(TargetArrayType type, TargetLocation location) : base(type, location) { this.Type = type; this.Rank = type.Rank; }
public BitfieldTargetLocation(TargetLocation relative_to, int offset, int size) { this.relative_to = relative_to; this.bit_offset = offset; this.bit_size = size; }
internal abstract long GetDynamicSize(TargetMemoryAccess target, TargetBlob blob, TargetLocation location, out TargetLocation dynamic_location);
internal TargetObject(TargetType type, TargetLocation location) { this.type = type; this.Location = location; this.type_name = type.Name; }
internal virtual void SetObject(TargetMemoryAccess target, TargetLocation location, TargetObject obj) { if (obj == null) { if (IsByRef) { location.WriteAddress (target, TargetAddress.Null); return; } throw new InvalidOperationException (); } if (IsByRef) { if (obj.Type.IsByRef) { location.WriteAddress (target, obj.Location.GetAddress (target)); return; } throw new InvalidOperationException (); } if (!HasFixedSize || !obj.Type.HasFixedSize) throw new InvalidOperationException (); if (Size != obj.Type.Size) throw new InvalidOperationException (); byte[] contents = obj.Location.ReadBuffer (target, obj.Type.Size); location.WriteBuffer (target, contents); }
protected override TargetObject DoGetObject(TargetMemoryAccess target, TargetLocation location) { return(new TargetEnumObject(this, location)); }
public RelativeTargetLocation(TargetLocation relative_to, long offset) { this.relative_to = relative_to; this.offset = offset; }
public BitfieldTargetLocation(TargetLocation relative_to, int offset, int size) { this.relative_to = relative_to; this.bit_offset = offset; this.bit_size = size; }
internal override long GetDynamicSize(TargetMemoryAccess target, TargetBlob blob, TargetLocation location, out TargetLocation dynamic_location) { throw new InvalidOperationException(); }
internal TargetArrayObject(TargetArrayType type, TargetLocation location) : base(type, location) { this.Type = type; this.Rank = type.Rank; }
internal TargetFundamentalObject(TargetFundamentalType type, TargetLocation location) : base(type, location) { this.Type = type; }
public override TargetLocation GetBaseLocation(TargetMemoryAccess memory, TargetLocation location) { return Inheritance.DataMember.GetLocation (location); }
internal TargetEnumObject(TargetEnumType type, TargetLocation location) : base(type, location) { this.Type = type; }
public TargetLocation GetLocation(TargetLocation location) { if (location_block == null) throw new NotImplementedException (); TargetBinaryReader locreader = new TargetBinaryReader ( location_block, comp_unit.DwarfReader.TargetMemoryInfo); byte opcode = locreader.ReadByte (); if (opcode == 0x23) // DW_OP_plus_uconst location = new RelativeTargetLocation (location, locreader.ReadLeb128 ()); else { Console.WriteLine ("UNKNOWN OPCODE: {0:x}", opcode); return null; } if (!locreader.IsEof) { Console.WriteLine ("LOCREADER NOT AT EOF!"); return null; } return location; }
public RelativeTargetLocation(TargetLocation relative_to, long offset) { this.relative_to = relative_to; this.offset = offset; }
protected abstract TargetObject DoGetObject(TargetMemoryAccess target, TargetLocation location);
internal abstract long GetDynamicSize(TargetMemoryAccess target, TargetBlob blob, TargetLocation location, out TargetLocation dynamic_location);
internal TargetObject GetObject(TargetMemoryAccess target, TargetLocation location) { return DoGetObject (target, location); }
public DereferencedTargetLocation(TargetLocation reference) { this.reference = reference; }
internal TargetFundamentalObject(TargetFundamentalType type, TargetLocation location) : base(type, location) { this.Type = type; }