Author: martin
Date: 2006-04-17 21:27:44 -0400 (Mon, 17 Apr 2006)
New Revision: 59563

Modified:
   trunk/debugger/ChangeLog
   trunk/debugger/arch/Architecture.cs
   trunk/debugger/arch/Architecture_I386.cs
   trunk/debugger/arch/Architecture_X86_64.cs
   trunk/debugger/arch/Bfd.cs
   trunk/debugger/arch/BfdContainer.cs
   trunk/debugger/arch/BfdDisassembler.cs
   trunk/debugger/arch/CoreFile.cs
   trunk/debugger/arch/DwarfFrameReader.cs
   trunk/debugger/arch/DwarfReader.cs
   trunk/debugger/backends/Inferior.cs
   trunk/debugger/backends/MonoThreadManager.cs
   trunk/debugger/backends/Process.cs
   trunk/debugger/backends/classes/TargetReader.cs
   trunk/debugger/classes/TargetBinaryAccess.cs
   trunk/debugger/classes/TargetBinaryReader.cs
   trunk/debugger/classes/TargetBinaryWriter.cs
   trunk/debugger/interfaces/ITargetMemoryAccess.cs
   trunk/debugger/languages/Language.cs
   trunk/debugger/languages/mono/MonoArrayObject.cs
   trunk/debugger/languages/mono/MonoClassInfo.cs
   trunk/debugger/languages/mono/MonoLanguageBackend.cs
   trunk/debugger/languages/mono/MonoSymbolFile.cs
   trunk/debugger/languages/native/NativeLanguage.cs
Log:
2006-04-18  Martin Baulig  <[EMAIL PROTECTED]>

        * interfaces/ITargetMemoryAccess.cs
        (ITargetInfo): Removed.



Modified: trunk/debugger/ChangeLog
===================================================================
--- trunk/debugger/ChangeLog    2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/ChangeLog    2006-04-18 01:27:44 UTC (rev 59563)
@@ -1,6 +1,11 @@
 2006-04-18  Martin Baulig  <[EMAIL PROTECTED]>
 
        * interfaces/ITargetMemoryAccess.cs
+       (ITargetInfo): Removed.
+
+2006-04-18  Martin Baulig  <[EMAIL PROTECTED]>
+
+       * interfaces/ITargetMemoryAccess.cs
        (ITargetMemoryAccess): Removed all the writing methods.
 
 2006-04-18  Martin Baulig  <[EMAIL PROTECTED]>

Modified: trunk/debugger/arch/Architecture.cs
===================================================================
--- trunk/debugger/arch/Architecture.cs 2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/arch/Architecture.cs 2006-04-18 01:27:44 UTC (rev 59563)
@@ -9,12 +9,22 @@
        public abstract class Architecture : MarshalByRefObject
        {
                protected readonly Process process;
+               protected readonly TargetInfo TargetInfo;
 
-               protected Architecture (Process process)
+               protected Architecture (Process process, TargetInfo info)
                {
                        this.process = process;
+                       this.TargetInfo = info;
                }
 
+               public AddressDomain AddressDomain {
+                       get { return TargetInfo.AddressDomain; }
+               }
+
+               public int TargetAddressSize {
+                       get { return TargetInfo.TargetAddressSize; }
+               }
+
                // <summary>
                //   The names of all registers.
                // </summary>
@@ -118,8 +128,7 @@
                internal abstract StackFrame TrySpecialUnwind (StackFrame 
last_frame,
                                                               
ITargetMemoryAccess memory);
 
-               internal abstract StackFrame CreateFrame (Thread thread, 
ITargetInfo info,
-                                                         Registers regs);
+               internal abstract StackFrame CreateFrame (Thread thread, 
Registers regs);
 
                internal StackFrame CreateFrame (Thread thread, TargetAddress 
address,
                                                 TargetAddress stack, 
TargetAddress frame_pointer,

Modified: trunk/debugger/arch/Architecture_I386.cs
===================================================================
--- trunk/debugger/arch/Architecture_I386.cs    2006-04-18 00:51:25 UTC (rev 
59562)
+++ trunk/debugger/arch/Architecture_I386.cs    2006-04-18 01:27:44 UTC (rev 
59563)
@@ -31,8 +31,8 @@
        // </summary>
        internal class Architecture_I386 : Architecture
        {
-               internal Architecture_I386 (Process process)
-                       : base (process)
+               internal Architecture_I386 (Process process, TargetInfo info)
+                       : base (process, info)
                { }
 
                internal override bool IsRetInstruction (ITargetMemoryAccess 
memory,
@@ -127,7 +127,7 @@
                        Registers regs = target.GetRegisters ();
                        Register addr = regs [(int) reg];
 
-                       TargetAddress vtable_addr = new TargetAddress 
(target.AddressDomain, addr);
+                       TargetAddress vtable_addr = new TargetAddress 
(AddressDomain, addr);
                        vtable_addr += disp;
 
                        if (dereference_addr)
@@ -146,15 +146,15 @@
                        byte opcode2 = reader.ReadByte ();
 
                        if ((opcode == 0xff) && (opcode2 == 0x25)) {
-                               insn_size = 2 + target.TargetAddressSize;
-                               return new TargetAddress (target.AddressDomain, 
reader.ReadAddress ());
+                               insn_size = 2 + TargetAddressSize;
+                               return new TargetAddress (AddressDomain, 
reader.ReadAddress ());
                        } else if ((opcode == 0xff) && (opcode2 == 0xa3)) {
                                int offset = reader.ReadInt32 ();
                                Registers regs = target.GetRegisters ();
                                long ebx = regs [(int) I386Register.EBX].Value;
 
                                insn_size = 6;
-                               return new TargetAddress (target.AddressDomain, 
ebx + offset);
+                               return new TargetAddress (AddressDomain, ebx + 
offset);
                        }
 
                        insn_size = 0;
@@ -185,7 +185,7 @@
                        if (location + call_disp + 10 != trampoline_address)
                                return TargetAddress.Null;
 
-                       return new TargetAddress (target.AddressDomain, 
method_info);
+                       return new TargetAddress (AddressDomain, method_info);
                }
 
                public override string[] RegisterNames {
@@ -370,9 +370,9 @@
                        Registers regs = new Registers (old_regs);
 
                        TargetAddress ebp = new TargetAddress (
-                               memory.AddressDomain, old_regs [(int) 
I386Register.EBP]);
+                               AddressDomain, old_regs [(int) 
I386Register.EBP]);
 
-                       int addr_size = memory.TargetAddressSize;
+                       int addr_size = TargetAddressSize;
                        TargetAddress new_ebp = memory.ReadAddress (ebp);
                        regs [(int) I386Register.EBP].SetValue (ebp, new_ebp);
 
@@ -453,7 +453,7 @@
                                TargetAddress new_eip = memory.ReadAddress 
(frame.StackPointer);
                                regs [(int) I386Register.EIP].SetValue 
(frame.StackPointer, new_eip);
 
-                               TargetAddress new_esp = frame.StackPointer + 
memory.TargetAddressSize;
+                               TargetAddress new_esp = frame.StackPointer + 
TargetAddressSize;
                                TargetAddress new_ebp = frame.FrameAddress;
 
                                regs [(int) I386Register.ESP].SetValue 
(new_esp);
@@ -469,7 +469,7 @@
                                Registers old_regs = frame.Registers;
                                Registers regs = new Registers (old_regs);
 
-                               int addr_size = memory.TargetAddressSize;
+                               int addr_size = TargetAddressSize;
                                TargetAddress new_ebp = memory.ReadAddress 
(frame.StackPointer);
                                regs [(int) I386Register.EBP].SetValue 
(frame.StackPointer, new_ebp);
 
@@ -624,7 +624,7 @@
                        if (new_frame != null)
                                return new_frame;
 
-                       int addr_size = memory.TargetAddressSize;
+                       int addr_size = TargetAddressSize;
 
                        Registers regs = new Registers (this);
 
@@ -652,9 +652,9 @@
                {
                        Registers regs = inferior.GetRegisters ();
                        TargetAddress esp = new TargetAddress (
-                               inferior.AddressDomain, regs [(int) 
I386Register.ESP].GetValue ());
+                               AddressDomain, regs [(int) 
I386Register.ESP].GetValue ());
                        TargetAddress eip = inferior.ReadAddress (esp);
-                       esp += inferior.TargetAddressSize;
+                       esp += TargetAddressSize;
 
                        regs [(int) I386Register.EIP].SetValue (eip);
                        regs [(int) I386Register.ESP].SetValue (esp);
@@ -663,15 +663,14 @@
                        inferior.SetRegisters (regs);
                }
 
-               internal override StackFrame CreateFrame (Thread thread, 
ITargetInfo info,
-                                                         Registers regs)
+               internal override StackFrame CreateFrame (Thread thread, 
Registers regs)
                {
                        TargetAddress address = new TargetAddress (
-                               info.AddressDomain, regs [(int) 
I386Register.EIP]);
+                               AddressDomain, regs [(int) I386Register.EIP]);
                        TargetAddress stack_pointer = new TargetAddress (
-                               info.AddressDomain, regs [(int) 
I386Register.ESP]);
+                               AddressDomain, regs [(int) I386Register.ESP]);
                        TargetAddress frame_pointer = new TargetAddress (
-                               info.AddressDomain, regs [(int) 
I386Register.EBP]);
+                               AddressDomain, regs [(int) I386Register.EBP]);
 
                        return CreateFrame (thread, address, stack_pointer, 
frame_pointer, regs);
                }

Modified: trunk/debugger/arch/Architecture_X86_64.cs
===================================================================
--- trunk/debugger/arch/Architecture_X86_64.cs  2006-04-18 00:51:25 UTC (rev 
59562)
+++ trunk/debugger/arch/Architecture_X86_64.cs  2006-04-18 01:27:44 UTC (rev 
59563)
@@ -42,8 +42,8 @@
        // </summary>
        internal class Architecture_X86_64 : Architecture
        {
-               internal Architecture_X86_64 (Process process)
-                       : base (process)
+               internal Architecture_X86_64 (Process process, TargetInfo info)
+                       : base (process, info)
                { }
 
                internal override bool IsRetInstruction (ITargetMemoryAccess 
memory,
@@ -169,7 +169,7 @@
                        Registers regs = target.GetRegisters ();
                        Register addr = regs [(int) reg];
 
-                       TargetAddress vtable_addr = new TargetAddress 
(target.AddressDomain, addr);
+                       TargetAddress vtable_addr = new TargetAddress 
(AddressDomain, addr);
                        vtable_addr += disp;
 
                        if (dereference_addr)
@@ -197,7 +197,7 @@
                                long rbx = regs [(int) 
X86_64_Register.RBX].Value;
 
                                insn_size = 6;
-                               return new TargetAddress (target.AddressDomain, 
rbx + offset);
+                               return new TargetAddress (AddressDomain, rbx + 
offset);
                        }
 
                        insn_size = 0;
@@ -230,7 +230,7 @@
                        if (location + call_disp + 19 != trampoline_address)
                                return TargetAddress.Null;
 
-                       return new TargetAddress (target.AddressDomain, 
method_info);
+                       return new TargetAddress (AddressDomain, method_info);
                }
 
                public override string[] RegisterNames {
@@ -473,9 +473,9 @@
                                return null;
 
                        TargetAddress rbp = new TargetAddress (
-                               memory.AddressDomain, old_regs [(int) 
X86_64_Register.RBP]);
+                               AddressDomain, old_regs [(int) 
X86_64_Register.RBP]);
 
-                       int addr_size = memory.TargetAddressSize;
+                       int addr_size = TargetAddressSize;
                        TargetAddress new_rbp = memory.ReadAddress (rbp);
                        regs [(int) X86_64_Register.RBP].SetValue (rbp, 
new_rbp);
 
@@ -594,7 +594,7 @@
                                TargetAddress new_rip = memory.ReadAddress 
(frame.StackPointer);
                                regs [(int) X86_64_Register.RIP].SetValue 
(frame.StackPointer, new_rip);
 
-                               TargetAddress new_rsp = frame.StackPointer + 
memory.TargetAddressSize;
+                               TargetAddress new_rsp = frame.StackPointer + 
TargetAddressSize;
                                TargetAddress new_rbp = frame.FrameAddress;
 
                                regs [(int) X86_64_Register.RSP].SetValue 
(new_rsp);
@@ -611,7 +611,7 @@
                        if (pos >= offset) {
                                Registers regs = CopyRegisters 
(frame.Registers);
 
-                               int addr_size = memory.TargetAddressSize;
+                               int addr_size = TargetAddressSize;
                                TargetAddress new_rbp = memory.ReadAddress 
(frame.StackPointer);
                                regs [(int) X86_64_Register.RBP].SetValue 
(frame.StackPointer, new_rbp);
 
@@ -652,7 +652,7 @@
 
                        TargetAddress rbp = frame.FrameAddress;
 
-                       int addr_size = memory.TargetAddressSize;
+                       int addr_size = TargetAddressSize;
 
                        Registers regs = CopyRegisters (frame.Registers);
 
@@ -713,11 +713,11 @@
                        }
 
                        TargetAddress rip = new TargetAddress (
-                               memory.AddressDomain, regs [(int) 
X86_64_Register.RIP].GetValue ());
+                               AddressDomain, regs [(int) 
X86_64_Register.RIP].GetValue ());
                        TargetAddress rsp = new TargetAddress (
-                               memory.AddressDomain, regs [(int) 
X86_64_Register.RSP].GetValue ());
+                               AddressDomain, regs [(int) 
X86_64_Register.RSP].GetValue ());
                        TargetAddress rbp = new TargetAddress (
-                               memory.AddressDomain, regs [(int) 
X86_64_Register.RBP].GetValue ());
+                               AddressDomain, regs [(int) 
X86_64_Register.RBP].GetValue ());
 
                        Symbol name = new Symbol ("<signal handler>", rip, 0);
 
@@ -738,9 +738,9 @@
                {
                        Registers regs = inferior.GetRegisters ();
                        TargetAddress rsp = new TargetAddress (
-                               inferior.AddressDomain, regs [(int) 
X86_64_Register.RSP].GetValue ());
+                               AddressDomain, regs [(int) 
X86_64_Register.RSP].GetValue ());
                        TargetAddress rip = inferior.ReadAddress (rsp);
-                       rsp += inferior.TargetAddressSize;
+                       rsp += TargetAddressSize;
 
                        regs [(int) X86_64_Register.RIP].SetValue (rip);
                        regs [(int) X86_64_Register.RSP].SetValue (rsp);
@@ -749,15 +749,14 @@
                        inferior.SetRegisters (regs);
                }
 
-               internal override StackFrame CreateFrame (Thread thread, 
ITargetInfo info,
-                                                         Registers regs)
+               internal override StackFrame CreateFrame (Thread thread, 
Registers regs)
                {
                        TargetAddress address = new TargetAddress (
-                               info.AddressDomain, regs [(int) 
X86_64_Register.RIP].GetValue ());
+                               AddressDomain, regs [(int) 
X86_64_Register.RIP].GetValue ());
                        TargetAddress stack_pointer = new TargetAddress (
-                               info.AddressDomain, regs [(int) 
X86_64_Register.RSP].GetValue ());
+                               AddressDomain, regs [(int) 
X86_64_Register.RSP].GetValue ());
                        TargetAddress frame_pointer = new TargetAddress (
-                               info.AddressDomain, regs [(int) 
X86_64_Register.RBP].GetValue ());
+                               AddressDomain, regs [(int) 
X86_64_Register.RBP].GetValue ());
 
                        return CreateFrame (thread, address, stack_pointer, 
frame_pointer, regs);
                }

Modified: trunk/debugger/arch/Bfd.cs
===================================================================
--- trunk/debugger/arch/Bfd.cs  2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/arch/Bfd.cs  2006-04-18 01:27:44 UTC (rev 59563)
@@ -16,7 +16,7 @@
                IntPtr bfd;
                protected Module module;
                protected BfdContainer container;
-               protected ITargetInfo info;
+               protected TargetInfo info;
                protected Bfd main_bfd;
                protected Architecture arch;
                TargetAddress first_link_map = TargetAddress.Null;
@@ -169,7 +169,7 @@
                        bfd_init ();
                }
 
-               public Bfd (BfdContainer container, ITargetInfo info, string 
filename,
+               public Bfd (BfdContainer container, TargetInfo info, string 
filename,
                            Bfd main_bfd, TargetAddress base_address, bool 
is_loaded)
                {
                        this.container = container;
@@ -195,9 +195,9 @@
                        target = bfd_glue_get_target_name (bfd);
                        if ((target == "elf32-i386") || (target == 
"elf64-x86-64")) {
                                if (target == "elf32-i386")
-                                       arch = new Architecture_I386 
(container.Process);
+                                       arch = new Architecture_I386 
(container.Process, info);
                                else
-                                       arch = new Architecture_X86_64 
(container.Process);
+                                       arch = new Architecture_X86_64 
(container.Process, info);
 
                                if (!is_coredump) {
                                        InternalSection text = GetSectionByName 
(".text", true);
@@ -336,7 +336,7 @@
                        if (section == null)
                                return false;
 
-                       TargetAddress vma = new TargetAddress 
(target.AddressDomain, section.vma);
+                       TargetAddress vma = new TargetAddress 
(info.AddressDomain, section.vma);
 
                        int size = (int) section.size;
                        byte[] dynamic = target.ReadBuffer (vma, size);
@@ -349,17 +349,17 @@
                                long base_ptr = bfd_glue_elfi386_locate_base 
(bfd, data, size);
                                if (base_ptr == 0)
                                        return false;
-                               debug_base = new TargetAddress 
(target.AddressDomain, base_ptr);
+                               debug_base = new TargetAddress 
(info.AddressDomain, base_ptr);
                        } finally {
                                if (data != IntPtr.Zero)
                                        Marshal.FreeHGlobal (data);
                        }
 
-                       int the_size = 2 * target.TargetLongIntegerSize +
-                               3 * target.TargetAddressSize;
+                       int the_size = 2 * info.TargetLongIntegerSize +
+                               3 * info.TargetAddressSize;
 
                        TargetBlob blob = target.ReadMemory (debug_base, 
the_size);
-                       TargetReader reader = new TargetReader (blob.Contents, 
target);
+                       TargetReader reader = new TargetReader (blob.Contents, 
info);
                        if (reader.ReadLongInteger () != 1)
                                return false;
 
@@ -399,9 +399,9 @@
                        bool first = true;
                        TargetAddress map = first_link_map;
                        while (!map.IsNull) {
-                               int the_size = 4 * target.TargetAddressSize;
+                               int the_size = 4 * info.TargetAddressSize;
                                TargetBlob blob = target.ReadMemory (map, 
the_size);
-                               TargetReader map_reader = new TargetReader 
(blob.Contents, target);
+                               TargetReader map_reader = new TargetReader 
(blob.Contents, info);
 
                                TargetAddress l_addr = map_reader.ReadAddress 
();
                                TargetAddress l_name = map_reader.ReadAddress 
();
@@ -435,7 +435,7 @@
                                        continue;
                                }
 
-                               bfd = container.AddFile (target, name, l_addr, 
module.StepInto, true);
+                               bfd = container.AddFile (info, name, l_addr, 
module.StepInto, true);
                                bfd.module_loaded (inferior, l_addr);
                        }
                }
@@ -474,7 +474,7 @@
                                        info.AddressDomain, BaseAddress.Address 
+ address);
                }
 
-               public ITargetInfo TargetInfo {
+               public TargetInfo TargetInfo {
                        get {
                                return info;
                        }
@@ -986,7 +986,7 @@
                        }
 
                        is_start = true;
-                       return memory.ReadAddress (got_start + 2 * 
memory.TargetAddressSize);
+                       return memory.ReadAddress (got_start + 2 * 
info.TargetAddressSize);
                }
 
                internal override StackFrame UnwindStack (StackFrame frame, 
ITargetMemoryAccess memory)

Modified: trunk/debugger/arch/BfdContainer.cs
===================================================================
--- trunk/debugger/arch/BfdContainer.cs 2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/arch/BfdContainer.cs 2006-04-18 01:27:44 UTC (rev 59563)
@@ -39,13 +39,13 @@
                        }
                }
 
-               internal void SetupInferior (ITargetInfo info, Bfd main_bfd)
+               internal void SetupInferior (TargetInfo info, Bfd main_bfd)
                {
                        this.main_bfd = main_bfd;
                        language = new NativeLanguage (this, info);
                }
 
-               public Bfd AddFile (ITargetInfo memory, string filename,
+               public Bfd AddFile (TargetInfo memory, string filename,
                                    TargetAddress base_address, bool step_info, 
bool is_loaded)
                {
                        check_disposed ();

Modified: trunk/debugger/arch/BfdDisassembler.cs
===================================================================
--- trunk/debugger/arch/BfdDisassembler.cs      2006-04-18 00:51:25 UTC (rev 
59562)
+++ trunk/debugger/arch/BfdDisassembler.cs      2006-04-18 01:27:44 UTC (rev 
59563)
@@ -54,7 +54,8 @@
                int read_memory_func (long address, IntPtr data, int size)
                {
                        try {
-                               TargetAddress location = new TargetAddress 
(memory.AddressDomain, address);
+                               TargetAddress location = new TargetAddress (
+                                       memory.TargetInfo.AddressDomain, 
address);
                                byte[] buffer = memory.ReadBuffer (location, 
size);
                                Marshal.Copy (buffer, 0, data, size);
                        } catch (Exception e) {
@@ -80,7 +81,8 @@
 
                void print_address_func (long address)
                {
-                       TargetAddress maddress = new TargetAddress 
(memory.AddressDomain, address);
+                       TargetAddress maddress = new TargetAddress (
+                               memory.TargetInfo.AddressDomain, address);
 
                        if (current_method != null) {
                                try {
@@ -148,7 +150,7 @@
                                sb = new StringBuilder ();
 
                                address = new TargetAddress (
-                                       memory.AddressDomain, address.Address);
+                                       memory.TargetInfo.AddressDomain, 
address.Address);
 
                                string insn;
                                int insn_size;

Modified: trunk/debugger/arch/CoreFile.cs
===================================================================
--- trunk/debugger/arch/CoreFile.cs     2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/arch/CoreFile.cs     2006-04-18 01:27:44 UTC (rev 59563)
@@ -205,7 +205,7 @@
                                get {
                                        if (current_frame == null)
                                                current_frame = 
CoreFile.Architecture.CreateFrame (
-                                                       Thread, 
CoreFile.TargetInfo, Registers);
+                                                       Thread, Registers);
 
                                        return current_frame;
                                }
@@ -295,7 +295,7 @@
 
                        public override TargetBlob ReadMemory (TargetAddress 
address, int size)
                        {
-                               return new TargetBlob (ReadBuffer (address, 
size), this);
+                               return new TargetBlob (ReadBuffer (address, 
size), TargetInfo);
                        }
 
                        public override byte[] ReadBuffer (TargetAddress 
address, int size)

Modified: trunk/debugger/arch/DwarfFrameReader.cs
===================================================================
--- trunk/debugger/arch/DwarfFrameReader.cs     2006-04-18 00:51:25 UTC (rev 
59562)
+++ trunk/debugger/arch/DwarfFrameReader.cs     2006-04-18 01:27:44 UTC (rev 
59563)
@@ -69,7 +69,7 @@
                                long range = ReadEncodedValue (reader, 
cie.Encoding & 0x0f);
 
                                TargetAddress start = new TargetAddress (
-                                       target.AddressDomain, initial);
+                                       target.TargetInfo.AddressDomain, 
initial);
 
                                if ((address < start) || (address > start + 
range)) {
                                        reader.Position = end_pos;
@@ -325,7 +325,7 @@
                        {
                                long cfa_addr = GetRegisterValue (regs, 1, 
columns [0]);
                                TargetAddress cfa = new TargetAddress (
-                                       target.AddressDomain, cfa_addr);
+                                       arch.AddressDomain, cfa_addr);
 
                                for (int i = 1; i < columns.Length; i++) {
                                        GetValue (target, regs, cfa, i+2, 
columns [i]);
@@ -349,14 +349,14 @@
                                        return null;
 
                                TargetAddress address = new TargetAddress (
-                                               target.AddressDomain, 
eip.Value);
+                                       arch.AddressDomain, eip.Value);
                                TargetAddress stack = new TargetAddress (
-                                               target.AddressDomain, 
esp.Value);
+                                       arch.AddressDomain, esp.Value);
 
                                TargetAddress frame_addr = TargetAddress.Null;
                                if (ebp.Valid)
                                        frame_addr = new TargetAddress (
-                                               target.AddressDomain, 
ebp.Value);
+                                               arch.AddressDomain, ebp.Value);
 
                                return arch.CreateFrame (
                                        frame.Thread, address, stack, 
frame_addr, regs);

Modified: trunk/debugger/arch/DwarfReader.cs
===================================================================
--- trunk/debugger/arch/DwarfReader.cs  2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/arch/DwarfReader.cs  2006-04-18 01:27:44 UTC (rev 59563)
@@ -113,7 +113,7 @@
                ArrayList aranges;
                Hashtable pubnames;
                Hashtable pubtypes;
-               ITargetInfo target_info;
+               TargetInfo target_info;
                SourceFileFactory factory;
 
                public DwarfReader (Bfd bfd, Module module, SourceFileFactory 
factory)
@@ -188,7 +188,7 @@
                                return false;
                }
 
-               public ITargetInfo TargetInfo {
+               public TargetInfo TargetInfo {
                        get {
                                return target_info;
                        }
@@ -3627,7 +3627,7 @@
                        long location_constant;
                        bool use_constant;
                        TargetVariable variable;
-                       ITargetInfo target_info;
+                       TargetInfo target_info;
                        bool resolved;
 
                        protected bool DoResolve ()
@@ -3714,7 +3714,7 @@
                        bool resolved, ok;
                        DieType type_die;
                        TargetType type;
-                       ITargetInfo target_info;
+                       TargetInfo target_info;
                        int bit_offset, bit_size;
                        int offset;
 

Modified: trunk/debugger/backends/Inferior.cs
===================================================================
--- trunk/debugger/backends/Inferior.cs 2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/backends/Inferior.cs 2006-04-18 01:27:44 UTC (rev 59563)
@@ -604,7 +604,7 @@
 
                        try {
                                bfd = bfd_container.AddFile (
-                                       this, start.TargetApplication, 
TargetAddress.Null,
+                                       target_info, start.TargetApplication, 
TargetAddress.Null,
                                        start.LoadNativeSymbolTable, true);
                        } catch (Exception e) {
                                if (error_handler != null)
@@ -616,7 +616,7 @@
                                return;
                        }
 
-                       bfd_container.SetupInferior (this, bfd);
+                       bfd_container.SetupInferior (target_info, bfd);
 
                        arch = bfd.Architecture;
 
@@ -1166,7 +1166,7 @@
                {
                        TargetAddress address, stack, frame;
 
-                       internal StackFrame (ITargetInfo info, ServerStackFrame 
frame)
+                       internal StackFrame (TargetInfo info, ServerStackFrame 
frame)
                        {
                                this.address = new TargetAddress 
(info.AddressDomain, frame.Address);
                                this.stack = new TargetAddress 
(info.AddressDomain, frame.StackPointer);
@@ -1214,7 +1214,7 @@
                public StackFrame GetCurrentFrame ()
                {
                        ServerStackFrame frame = get_current_frame ();
-                       return new StackFrame (this, frame);
+                       return new StackFrame (target_info, frame);
                }
 
                public TargetMemoryArea[] GetMemoryMaps ()

Modified: trunk/debugger/backends/MonoThreadManager.cs
===================================================================
--- trunk/debugger/backends/MonoThreadManager.cs        2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/backends/MonoThreadManager.cs        2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -71,7 +71,7 @@
                        int size = header.ReadInt32 ();
 
                        TargetReader reader = new TargetReader (
-                               inferior.ReadMemory (info, size), inferior);
+                               inferior.ReadMemory (info, size), 
inferior.TargetInfo);
                        debugger_info = new MonoDebuggerInfo (reader);
 
                        if (attach)

Modified: trunk/debugger/backends/Process.cs
===================================================================
--- trunk/debugger/backends/Process.cs  2006-04-18 00:51:25 UTC (rev 59562)
+++ trunk/debugger/backends/Process.cs  2006-04-18 01:27:44 UTC (rev 59563)
@@ -434,7 +434,8 @@
                                                filename);
 
                        if (!mono_language.TryFindImage (thread, filename))
-                               bfd_container.AddFile (thread, filename, 
TargetAddress.Null, true, false);
+                               bfd_container.AddFile (thread.TargetInfo, 
filename,
+                                                      TargetAddress.Null, 
true, false);
                }
 
                internal MonoLanguageBackend MonoLanguage {

Modified: trunk/debugger/backends/classes/TargetReader.cs
===================================================================
--- trunk/debugger/backends/classes/TargetReader.cs     2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/backends/classes/TargetReader.cs     2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -11,9 +11,9 @@
        {
                byte[] data;
                TargetBinaryReader reader;
-               ITargetInfo info;
+               TargetInfo info;
 
-               internal TargetReader (byte[] data, ITargetInfo info)
+               internal TargetReader (byte[] data, TargetInfo info)
                {
                        if ((info == null) || (data == null))
                                throw new ArgumentNullException ();
@@ -22,7 +22,7 @@
                        this.data = data;
                }
 
-               internal TargetReader (TargetBlob data, ITargetInfo info)
+               internal TargetReader (TargetBlob data, TargetInfo info)
                        : this (data.Contents, info)
                { }
 

Modified: trunk/debugger/classes/TargetBinaryAccess.cs
===================================================================
--- trunk/debugger/classes/TargetBinaryAccess.cs        2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/classes/TargetBinaryAccess.cs        2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -4,7 +4,7 @@
 namespace Mono.Debugger
 {
        [Serializable]
-       public sealed class TargetInfo : ITargetInfo
+       public sealed class TargetInfo
        {
                int target_int_size;
                int target_long_size;
@@ -58,15 +58,15 @@
        public sealed class TargetBlob
        {
                public readonly byte[] Contents;
-               public readonly ITargetInfo TargetInfo;
+               public readonly TargetInfo TargetInfo;
 
-               public TargetBlob (byte[] contents, ITargetInfo target_info)
+               public TargetBlob (byte[] contents, TargetInfo target_info)
                {
                        this.Contents = contents;
                        this.TargetInfo = target_info;
                }
 
-               public TargetBlob (int size, ITargetInfo target_info)
+               public TargetBlob (int size, TargetInfo target_info)
                {
                        this.Contents = new byte [size];
                        this.TargetInfo = target_info;
@@ -106,7 +106,7 @@
                        }
                }
 
-               public ITargetInfo TargetInfo {
+               public TargetInfo TargetInfo {
                        get {
                                return blob.TargetInfo;
                        }

Modified: trunk/debugger/classes/TargetBinaryReader.cs
===================================================================
--- trunk/debugger/classes/TargetBinaryReader.cs        2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/classes/TargetBinaryReader.cs        2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -8,7 +8,7 @@
        [Serializable]
        public class TargetBinaryReader : TargetBinaryAccess
        {
-               public TargetBinaryReader (byte[] contents, ITargetInfo 
target_info)
+               public TargetBinaryReader (byte[] contents, TargetInfo 
target_info)
                        : base (new TargetBlob (contents, target_info))
                { }
 

Modified: trunk/debugger/classes/TargetBinaryWriter.cs
===================================================================
--- trunk/debugger/classes/TargetBinaryWriter.cs        2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/classes/TargetBinaryWriter.cs        2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -5,7 +5,7 @@
 {
        public class TargetBinaryWriter : TargetBinaryAccess
        {
-               public TargetBinaryWriter (int size, ITargetInfo target_info)
+               public TargetBinaryWriter (int size, TargetInfo target_info)
                        : base (new TargetBlob (size, target_info))
                { }
 

Modified: trunk/debugger/interfaces/ITargetMemoryAccess.cs
===================================================================
--- trunk/debugger/interfaces/ITargetMemoryAccess.cs    2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/interfaces/ITargetMemoryAccess.cs    2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -3,43 +3,8 @@
 
 namespace Mono.Debugger
 {
-       public interface ITargetInfo
+       internal interface ITargetMemoryAccess
        {
-               // <summary>
-               //   Size of an address in the target.
-               // </summary>
-               int TargetAddressSize {
-                       get;
-               }
-
-               // <summary>
-               //   Size of an integer in the target.
-               // </summary>
-               int TargetIntegerSize {
-                       get;
-               }
-
-               // <summary>
-               //   Size of a long integer in the target.
-               // </summary>
-               int TargetLongIntegerSize {
-                       get;
-               }
-
-               // <summary>
-               //   Whether this architecture is big-endian.
-               // </summary>
-               bool IsBigEndian {
-                       get;
-               }
-
-               AddressDomain AddressDomain {
-                       get;
-               }
-       }
-
-       internal interface ITargetMemoryAccess : ITargetInfo
-       {
                TargetInfo TargetInfo {
                        get;
                }

Modified: trunk/debugger/languages/Language.cs
===================================================================
--- trunk/debugger/languages/Language.cs        2006-04-18 00:51:25 UTC (rev 
59562)
+++ trunk/debugger/languages/Language.cs        2006-04-18 01:27:44 UTC (rev 
59563)
@@ -12,7 +12,7 @@
                        get;
                }
 
-               public abstract ITargetInfo TargetInfo {
+               public abstract TargetInfo TargetInfo {
                        get;
                }
 

Modified: trunk/debugger/languages/mono/MonoArrayObject.cs
===================================================================
--- trunk/debugger/languages/mono/MonoArrayObject.cs    2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/languages/mono/MonoArrayObject.cs    2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -79,7 +79,7 @@
                        Type.ElementType.SetObject (target, new_loc, obj);
                }
 
-               int GetElementSize (ITargetInfo info)
+               int GetElementSize (TargetInfo info)
                {
                        if (Type.ElementType.IsByRef)
                                return info.TargetAddressSize;

Modified: trunk/debugger/languages/mono/MonoClassInfo.cs
===================================================================
--- trunk/debugger/languages/mono/MonoClassInfo.cs      2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/languages/mono/MonoClassInfo.cs      2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -22,7 +22,7 @@
 
                        size = info.ReadLeb128 ();
                        KlassAddress = new TargetAddress (
-                               type.File.AddressDomain, info.ReadAddress ());
+                               info.TargetInfo.AddressDomain, info.ReadAddress 
());
 
                        type.File.MonoLanguage.AddClass (KlassAddress, type);
 

Modified: trunk/debugger/languages/mono/MonoLanguageBackend.cs
===================================================================
--- trunk/debugger/languages/mono/MonoLanguageBackend.cs        2006-04-18 
00:51:25 UTC (rev 59562)
+++ trunk/debugger/languages/mono/MonoLanguageBackend.cs        2006-04-18 
01:27:44 UTC (rev 59563)
@@ -91,7 +91,7 @@
 
                        int defaults_size = reader.ReadInt32 ();
                        TargetAddress defaults_address = new TargetAddress (
-                               memory.AddressDomain, reader.ReadAddress ());
+                               memory.TargetInfo.AddressDomain, 
reader.ReadAddress ());
 
                        TypeSize = reader.ReadInt32 ();
                        ArrayTypeSize = reader.ReadInt32 ();
@@ -132,7 +132,8 @@
                        MonoDefaultsExceptionOffset = reader.ReadInt32 ();
 
                        TargetReader mono_defaults = new TargetReader (
-                               memory.ReadMemory (defaults_address, 
defaults_size).Contents, memory);
+                               memory.ReadMemory (defaults_address, 
defaults_size).Contents,
+                               memory.TargetInfo);
 
                        MonoLanguageBackend language = corlib.MonoLanguage;
                        mono_defaults.Offset = MonoDefaultsObjectOffset;
@@ -305,7 +306,7 @@
                        get { return process.SourceFileFactory; }
                }
 
-               public override ITargetInfo TargetInfo {
+               public override TargetInfo TargetInfo {
                        get { return corlib.TargetInfo; }
                }
 
@@ -415,11 +416,11 @@
                        trampolines = new TargetAddress [4];
                        TargetAddress address = info.MonoTrampolineCode;
                        trampolines [0] = memory.ReadAddress (address);
-                       address += memory.TargetAddressSize;
+                       address += memory.TargetInfo.TargetAddressSize;
                        trampolines [1] = memory.ReadAddress (address);
-                       address += memory.TargetAddressSize;
+                       address += memory.TargetInfo.TargetAddressSize;
                        trampolines [2] = memory.ReadAddress (address);
-                       address += 2 * memory.TargetAddressSize;
+                       address += 2 * memory.TargetInfo.TargetAddressSize;
                        trampolines [3] = memory.ReadAddress (address);
 
                        symbol_files = new ArrayList ();
@@ -462,7 +463,8 @@
                {
                        TargetAddress symtab_address = memory.ReadAddress 
(info.SymbolTable);
                        TargetReader header = new TargetReader (
-                               memory.ReadMemory (symtab_address, 
info.SymbolTableSize), memory);
+                               memory.ReadMemory (symtab_address, 
info.SymbolTableSize),
+                               memory.TargetInfo);
 
                        long magic = header.BinaryReader.ReadInt64 ();
                        if (magic != MonoDebuggerInfo.DynamicMagic)
@@ -492,10 +494,10 @@
                        TargetAddress symfiles_address = header.ReadAddress ();
                        int num_symbol_files = header.ReadInteger ();
 
-                       symfiles_address += last_num_symbol_files * 
memory.TargetAddressSize;
+                       symfiles_address += last_num_symbol_files * 
memory.TargetInfo.TargetAddressSize;
                        for (int i = last_num_symbol_files; i < 
num_symbol_files; i++) {
                                TargetAddress address = memory.ReadAddress 
(symfiles_address);
-                               symfiles_address += memory.TargetAddressSize;
+                               symfiles_address += 
memory.TargetInfo.TargetAddressSize;
 
                                try {
                                        MonoSymbolFile symfile = new 
MonoSymbolFile (
@@ -534,11 +536,11 @@
                        if (num_data_tables != last_num_data_tables) {
                                int old_offset = last_data_table_offset;
 
-                               data_tables += last_num_data_tables * 
memory.TargetAddressSize;
+                               data_tables += last_num_data_tables * 
memory.TargetInfo.TargetAddressSize;
 
                                for (int i = last_num_data_tables; i < 
num_data_tables; i++) {
                                        TargetAddress old_table = 
memory.ReadAddress (data_tables);
-                                       data_tables += memory.TargetAddressSize;
+                                       data_tables += 
memory.TargetInfo.TargetAddressSize;
 
                                        int old_size = memory.ReadInteger 
(old_table);
                                        read_data_items (memory, old_table, 
old_offset, old_size);
@@ -576,14 +578,14 @@
                void read_data_items (ITargetMemoryAccess memory, TargetAddress 
address, int start, int end)
                {
                        TargetReader reader = new TargetReader (
-                               memory.ReadMemory (address + start, end - 
start), memory);
+                               memory.ReadMemory (address + start, end - 
start), memory.TargetInfo);
 
                        Report.Debug (DebugFlags.JitSymtab,
                                      "READ DATA ITEMS: {0} {1} {2} - {3} {4}", 
address, start, end,
                                      reader.BinaryReader.Position, 
reader.Size);
 
                        if (start == 0)
-                               reader.BinaryReader.Position = 
memory.TargetAddressSize;
+                               reader.BinaryReader.Position = 
memory.TargetInfo.TargetAddressSize;
 
                        while (reader.BinaryReader.Position + 4 < reader.Size) {
                                int item_size = reader.BinaryReader.ReadInt32 
();

Modified: trunk/debugger/languages/mono/MonoSymbolFile.cs
===================================================================
--- trunk/debugger/languages/mono/MonoSymbolFile.cs     2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/languages/mono/MonoSymbolFile.cs     2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -208,15 +208,12 @@
                internal readonly string ImageFile;
                internal readonly C.MonoSymbolFile File;
                internal readonly ThreadManager ThreadManager;
-               internal readonly AddressDomain AddressDomain;
-               internal readonly ITargetInfo TargetInfo;
+               internal readonly TargetInfo TargetInfo;
                internal readonly MonoLanguageBackend MonoLanguage;
                internal readonly Architecture Architecture;
                protected readonly Process process;
                MonoSymbolTable symtab;
                string name;
-               int address_size;
-               int int_size;
 
                Hashtable range_hash;
                ArrayList ranges;
@@ -232,15 +229,14 @@
                                         ITargetMemoryAccess memory, 
TargetAddress address)
                {
                        this.MonoLanguage = language;
-                       this.TargetInfo = memory;
+                       this.TargetInfo = memory.TargetInfo;
                        this.Architecture = memory.Architecture;
                        this.process = process;
 
                        ThreadManager = process.ThreadManager;
-                       AddressDomain = memory.AddressDomain;
 
-                       address_size = TargetInfo.TargetAddressSize;
-                       int_size = TargetInfo.TargetIntegerSize;
+                       int address_size = TargetInfo.TargetAddressSize;
+                       int int_size = TargetInfo.TargetIntegerSize;
 
                        ranges = new ArrayList ();
                        wrappers = new ArrayList ();
@@ -573,7 +569,7 @@
 
                        if (!method.IsLoaded) {
                                TargetBinaryReader reader = new 
TargetBinaryReader (contents, TargetInfo);
-                               method.Load (reader, AddressDomain);
+                               method.Load (reader, TargetInfo.AddressDomain);
                        }
 
                        return method;

Modified: trunk/debugger/languages/native/NativeLanguage.cs
===================================================================
--- trunk/debugger/languages/native/NativeLanguage.cs   2006-04-18 00:51:25 UTC 
(rev 59562)
+++ trunk/debugger/languages/native/NativeLanguage.cs   2006-04-18 01:27:44 UTC 
(rev 59563)
@@ -13,9 +13,9 @@
                NativePointerType pointer_type;
                NativeOpaqueType void_type;
                NativeStringType string_type;
-               ITargetInfo info;
+               TargetInfo info;
 
-               public NativeLanguage (BfdContainer bfd_container, ITargetInfo 
info)
+               public NativeLanguage (BfdContainer bfd_container, TargetInfo 
info)
                {
                        this.bfd_container = bfd_container;
                        this.info = info;
@@ -56,7 +56,7 @@
                        get { return void_type; }
                }
 
-               public override ITargetInfo TargetInfo {
+               public override TargetInfo TargetInfo {
                        get { return info; }
                }
 

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to