[Mono-bugs] [Bug 74805][Maj] Changed - sometimes setting a variable
doesn't change the inferior's execution
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Wed Jul 20 08:47:48 EDT 2005
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by martin at ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=74805
--- shadow/74805 2005-05-03 03:51:03.000000000 -0400
+++ shadow/74805.tmp.6316 2005-07-20 08:47:48.000000000 -0400
@@ -1,14 +1,14 @@
Bug#: 74805
Product: Mono: Debugger
Version: unspecified
-OS:
+OS: unknown
OS Details:
Status: NEW
Resolution:
-Severity:
+Severity: Unknown
Priority: Major
Component: backend
AssignedTo: toshok at ximian.com
ReportedBy: toshok at ximian.com
QAContact: mono-bugs at ximian.com
TargetMilestone: ---
@@ -65,6 +65,34 @@
(mdb) print ok
(System.Boolean) False
(mdb) set ok = true
(mdb) c
true
Process @4 terminated normally.
+
+------- Additional Comments From martin at ximian.com 2005-07-20 08:47 -------
+I debugged this and it's due to incorrect line number information - at
+least on x86_64. We're generating the following code for this:
+
+=====
+0x400177c0 push %rbp
+0x400177c1 mov %rsp,%rbp
+0x400177c4 push %r14
+0x400177c6 push %r15
+0x400177c8 sub $0x10,%rsp
+0x400177cc mov %rdi,0xffffffffffffffe8(%rbp)
+0x400177d0 callq 0x401ce8
+0x400177d5 mov %rax,%r15
+0x400177d8 xor %r14,%r14
+0x400177db callq 0x40017c40:X.foo()
+0x400177e0 mov %rax,%r14
+0x400177e3 and $0xff,%r14
+0x400177ea mov %r14,%rax
+0x400177ed and $0xff,%rax
+0x400177f3 test %eax,%eax
+0x400177f5 je 0x4001781d:X.Main(System.String[])+0x5d
+=====
+
+The `if (ok)' begins at 0x400177ea - `ok' is stored in %r14 which is
+then copied into %rax and checked. However, the debugger stops at
+0x400177ed - so if you modify the variable, the debugger correctly
+changes %r14, but it's already copied into %rax.
More information about the mono-bugs
mailing list