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