[Mono-devel-list] [PATCH][RFC] debugger: 32 bit address bug
Hans Kratz
kratz at omnicore.com
Tue Jun 7 10:45:02 EDT 2005
Hi!
Addresses are communicated from the Mono VM as a platform-specific
pointer, however Mono.Debugger.TargetBinaryReader.PeekAddress() and
ReadAddress() read the pointer as a 32 bit *signed* int on 32 bit
architectures and return a sign-extended 64 bit signed int. This causes
problems if the communicated address is > 2**31 which is frequently the
case. When that happens the debugger library is for example unable to
find the containing method correctly given a program location.
Attached patch fixes this by reading a 32 bit uint from the Mono VM
instead. However I think all the APIs should be sanitized to use 64 bit
*unsigned* longs (ulongs) for addresses as well, using signed longs does
not make much sense.
Best regards,
Hans
--
Hans Kratz
Omnicore Software
http://www.omnicore.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: debugger-32bitaddress-unsigned.patch
Type: text/x-patch
Size: 565 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050607/1214fab8/attachment.bin
More information about the Mono-devel-list
mailing list