Author: martin
Date: 2007-05-14 09:41:32 -0400 (Mon, 14 May 2007)
New Revision: 77346

Modified:
   trunk/debugger/ChangeLog
   trunk/debugger/backend/arch/Architecture_I386.cs
   trunk/debugger/backend/arch/Architecture_X86_64.cs
Log:
2007-05-14  Martin Baulig  <[EMAIL PROTECTED]>

        * backend/arch/Architecture_I386.cs
        (Architecture_I386.GetLMF): Correctly set ebp.

        * backend/arch/Architecture_X86_64.cs
        (Architecture_X86_64.GetLMF): Correctly set rbp.



Modified: trunk/debugger/ChangeLog
===================================================================
--- trunk/debugger/ChangeLog    2007-05-14 13:40:37 UTC (rev 77345)
+++ trunk/debugger/ChangeLog    2007-05-14 13:41:32 UTC (rev 77346)
@@ -6,6 +6,14 @@
 
        * configure.in: Require Mono >= 1.2.4.
 
+2007-05-14  Martin Baulig  <[EMAIL PROTECTED]>
+
+       * backend/arch/Architecture_I386.cs
+       (Architecture_I386.GetLMF): Correctly set ebp.
+
+       * backend/arch/Architecture_X86_64.cs
+       (Architecture_X86_64.GetLMF): Correctly set rbp.
+
 2007-05-09  Martin Baulig  <[EMAIL PROTECTED]>
 
        * frontend/ObjectFormatter.cs

Modified: trunk/debugger/backend/arch/Architecture_I386.cs
===================================================================
--- trunk/debugger/backend/arch/Architecture_I386.cs    2007-05-14 13:40:37 UTC 
(rev 77345)
+++ trunk/debugger/backend/arch/Architecture_I386.cs    2007-05-14 13:41:32 UTC 
(rev 77346)
@@ -737,12 +737,15 @@
                        TargetAddress new_eip = thread.ReadAddress (ebp + 4);
                        regs [(int) I386Register.EIP].SetValue (ebp + 4, 
new_eip);
 
+                       TargetAddress new_ebp = thread.ReadAddress (ebp);
+                       regs [(int) I386Register.EBP].SetValue (ebp, new_ebp);
+
                        TargetAddress new_esp = ebp + 8;
                        regs [(int) I386Register.ESP].SetValue (ebp, new_esp);
 
                        ebp -= 4;
 
-                       return CreateFrame (thread, new_eip, new_esp, ebp, 
regs);
+                       return CreateFrame (thread, new_eip, new_esp, new_ebp, 
regs);
                }
        }
 }

Modified: trunk/debugger/backend/arch/Architecture_X86_64.cs
===================================================================
--- trunk/debugger/backend/arch/Architecture_X86_64.cs  2007-05-14 13:40:37 UTC 
(rev 77345)
+++ trunk/debugger/backend/arch/Architecture_X86_64.cs  2007-05-14 13:41:32 UTC 
(rev 77346)
@@ -826,9 +826,12 @@
                        TargetAddress new_rip = thread.ReadAddress (rbp + 8);
                        regs [(int) X86_64_Register.RIP].SetValue (rbp + 8, 
new_rip);
 
+                       TargetAddress new_rbp = thread.ReadAddress (rbp);
+                       regs [(int) X86_64_Register.RBP].SetValue (rbp, 
new_rbp);
+
                        rbp -= 8;
 
-                       return CreateFrame (thread, new_rip, rsp, rbp, regs);
+                       return CreateFrame (thread, new_rip, rsp, new_rbp, 
regs);
                }
        }
 }

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

Reply via email to