Author: martin
Date: 2007-10-31 11:27:22 -0500 (Wed, 31 Oct 2007)
New Revision: 88577

Modified:
   trunk/debugger/ChangeLog
   trunk/debugger/backend/SingleSteppingEngine.cs
   trunk/debugger/backend/arch/Architecture.cs
   trunk/debugger/backend/arch/Opcodes_X86_64.cs
   trunk/debugger/backend/arch/X86_Opcodes.cs
Log:
2007-10-31  Martin Baulig  <[EMAIL PROTECTED]>

        * backend/arch/Architecture.cs
        (Architecture.Opcodes): New public property.

        * backend/SingleSteppingEngine.cs
        (SSE.step_over_breakpoint): Use Opcodes.GenerateJumpInstruction()
        instead of encoding it here.



Modified: trunk/debugger/ChangeLog
===================================================================
--- trunk/debugger/ChangeLog    2007-10-31 16:24:10 UTC (rev 88576)
+++ trunk/debugger/ChangeLog    2007-10-31 16:27:22 UTC (rev 88577)
@@ -6,6 +6,15 @@
 
 2007-10-31  Martin Baulig  <[EMAIL PROTECTED]>
 
+       * backend/arch/Architecture.cs
+       (Architecture.Opcodes): New public property.
+
+       * backend/SingleSteppingEngine.cs
+       (SSE.step_over_breakpoint): Use Opcodes.GenerateJumpInstruction()
+       instead of encoding it here.
+
+2007-10-31  Martin Baulig  <[EMAIL PROTECTED]>
+
        * backend/arch/Opcodes.cs
        (Opcodes.GenerateJumpInstruction): New abstract method.
 

Modified: trunk/debugger/backend/SingleSteppingEngine.cs
===================================================================
--- trunk/debugger/backend/SingleSteppingEngine.cs      2007-10-31 16:24:10 UTC 
(rev 88576)
+++ trunk/debugger/backend/SingleSteppingEngine.cs      2007-10-31 16:27:22 UTC 
(rev 88577)
@@ -940,22 +940,9 @@
 
                                Console.WriteLine ("EXECUTE CALL: {0} {1}", 
inferior.CurrentFrame, target);
 
+                               byte[] jump_insn = 
Architecture.Opcodes.GenerateJumpInstruction (target);
 
-                               //
-                               //
-                               // FIXME FIXME FIXME BROKEN !!!!
-                               //
-
-                               /// FIXME: We need to execute something
-                               TargetBinaryWriter writer = new 
TargetBinaryWriter (
-                                       14, inferior.TargetMemoryInfo);
-                               writer.WriteByte (0xff);
-                               writer.WriteByte (0x25);
-                               writer.WriteInt32 (0);
-                               writer.WriteAddress (target);
-
-                               inferior.ExecuteInstruction (
-                                       writer.Contents, 
instruction.InstructionSize, true);
+                               inferior.ExecuteInstruction (jump_insn, 
instruction.InstructionSize, true);
                                return true;
                        }
 

Modified: trunk/debugger/backend/arch/Architecture.cs
===================================================================
--- trunk/debugger/backend/arch/Architecture.cs 2007-10-31 16:24:10 UTC (rev 
88576)
+++ trunk/debugger/backend/arch/Architecture.cs 2007-10-31 16:27:22 UTC (rev 
88577)
@@ -31,6 +31,10 @@
                        get { return disassembler; }
                }
 
+               public Opcodes Opcodes {
+                       get { return opcodes; }
+               }
+
                public int TargetAddressSize {
                        get { return TargetInfo.TargetAddressSize; }
                }

Modified: trunk/debugger/backend/arch/Opcodes_X86_64.cs
===================================================================
--- trunk/debugger/backend/arch/Opcodes_X86_64.cs       2007-10-31 16:24:10 UTC 
(rev 88576)
+++ trunk/debugger/backend/arch/Opcodes_X86_64.cs       2007-10-31 16:27:22 UTC 
(rev 88577)
@@ -13,11 +13,9 @@
                        get { return true; }
                }
 
-               internal override byte[] GenerateJumpInstruction (TargetAddress 
address)
+               internal override byte[] GenerateJumpInstruction (TargetAddress 
target)
                {
-#if FIXME
-                       TargetBinaryWriter writer = new TargetBinaryWriter (
-                               14, inferior.TargetMemoryInfo);
+                       TargetBinaryWriter writer = new TargetBinaryWriter (14, 
TargetMemoryInfo);
 
                        writer.WriteByte (0xff);
                        writer.WriteByte (0x25);
@@ -25,9 +23,6 @@
                        writer.WriteAddress (target);
 
                        return writer.Contents;
-#else
-                       return new byte [0];
-#endif
                }
        }
 }

Modified: trunk/debugger/backend/arch/X86_Opcodes.cs
===================================================================
--- trunk/debugger/backend/arch/X86_Opcodes.cs  2007-10-31 16:24:10 UTC (rev 
88576)
+++ trunk/debugger/backend/arch/X86_Opcodes.cs  2007-10-31 16:27:22 UTC (rev 
88577)
@@ -8,12 +8,14 @@
        internal abstract class X86_Opcodes : Opcodes
        {
                ProcessServant process;
+               TargetMemoryInfo target_info;
                BfdDisassembler disassembler;
 
                protected X86_Opcodes (ProcessServant process)
                {
                        this.process = process;
 
+                       target_info = Inferior.GetTargetMemoryInfo 
(AddressDomain.Global);
                        disassembler = new BfdDisassembler (null, Is64BitMode);
                }
 
@@ -21,6 +23,10 @@
                        get;
                }
 
+               internal TargetMemoryInfo TargetMemoryInfo {
+                       get { return target_info; }
+               }
+
                internal Disassembler Disassembler {
                        get { return disassembler; }
                }

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

Reply via email to