Author: martin
Date: 2005-05-11 13:59:52 -0400 (Wed, 11 May 2005)
New Revision: 44398
Modified:
trunk/debugger/ChangeLog
trunk/debugger/backends/mono/MonoLanguageBackend.cs
trunk/debugger/backends/mono/MonoSymbolFile.cs
trunk/debugger/wrapper/mono-debugger-jit-wrapper.h
trunk/debugger/wrapper/wrapper.c
Log:
2005-05-11 Martin Baulig <[EMAIL PROTECTED]>
* wrapper/mono-debugger-jit-wrapper.h
(MonoDebuggerInfo, MonoDebuggerManager): Changed the order of some
fields to get proper alignment on 64-bit machines.
* backends/mono/MonoSymbolFile.cs: Reflect latest JIT changes.
* backends/mono/MonoLanguageBackend.cs: Likewise.
Modified: trunk/debugger/ChangeLog
===================================================================
--- trunk/debugger/ChangeLog 2005-05-11 17:56:50 UTC (rev 44397)
+++ trunk/debugger/ChangeLog 2005-05-11 17:59:52 UTC (rev 44398)
@@ -1,3 +1,12 @@
+2005-05-11 Martin Baulig <[EMAIL PROTECTED]>
+
+ * wrapper/mono-debugger-jit-wrapper.h
+ (MonoDebuggerInfo, MonoDebuggerManager): Changed the order of some
+ fields to get proper alignment on 64-bit machines.
+
+ * backends/mono/MonoSymbolFile.cs: Reflect latest JIT changes.
+ * backends/mono/MonoLanguageBackend.cs: Likewise.
+
2005-05-10 Chris Toshok <[EMAIL PROTECTED]>
* frontend/GnuReadLine.cs: remove the Instance stuff.
Modified: trunk/debugger/backends/mono/MonoLanguageBackend.cs
===================================================================
--- trunk/debugger/backends/mono/MonoLanguageBackend.cs 2005-05-11 17:56:50 UTC
(rev 44397)
+++ trunk/debugger/backends/mono/MonoLanguageBackend.cs 2005-05-11 17:59:52 UTC
(rev 44398)
@@ -40,12 +40,12 @@
internal MonoDebuggerInfo (ITargetMemoryReader reader)
{
/* skip past magic, version, and total_size */
- reader.Offset = (reader.TargetLongIntegerSize +
- 2 * reader.TargetIntegerSize);
+ reader.Offset = 16;
+ SymbolTableSize = reader.ReadInteger ();
+ HeapSize = reader.ReadInteger ();
GenericTrampolineCode = reader.ReadGlobalAddress ();
SymbolTable = reader.ReadGlobalAddress ();
- SymbolTableSize = reader.ReadInteger ();
CompileMethod = reader.ReadGlobalAddress ();
GetVirtualMethod = reader.ReadGlobalAddress ();
GetBoxedObjectMethod = reader.ReadGlobalAddress ();
@@ -57,7 +57,6 @@
LookupType = reader.ReadGlobalAddress ();
LookupAssembly = reader.ReadGlobalAddress ();
Heap = reader.ReadAddress ();
- HeapSize = reader.ReadInteger ();
Report.Debug (DebugFlags.JitSymtab, this);
}
@@ -375,8 +374,8 @@
TargetAddress corlib_address = header.ReadGlobalAddress
();
TargetAddress metadata_info = header.ReadGlobalAddress
();
- int num_symbol_files = header.ReadInteger ();
TargetAddress symfiles_address = header.ReadAddress ();
+ int num_symbol_files = header.ReadInteger ();
symfiles_address += last_num_symbol_files *
memory.TargetAddressSize;
for (int i = last_num_symbol_files; i <
num_symbol_files; i++) {
@@ -659,8 +658,8 @@
}
public TargetAddress GetTrampolineAddress (ITargetMemoryAccess
memory,
- TargetAddress address,
- out bool is_start)
+ TargetAddress
address,
+ out bool is_start)
{
is_start = false;
Modified: trunk/debugger/backends/mono/MonoSymbolFile.cs
===================================================================
--- trunk/debugger/backends/mono/MonoSymbolFile.cs 2005-05-11 17:56:50 UTC
(rev 44397)
+++ trunk/debugger/backends/mono/MonoSymbolFile.cs 2005-05-11 17:59:52 UTC
(rev 44398)
@@ -42,9 +42,10 @@
Mode = (AddressMode) (Index & AddressModeFlags);
Index = (int) ((long) Index & ~AddressModeFlags);
- Report.Debug (DebugFlags.JitSymtab, "VARIABLE INFO: {0}
{1} {2}", Mode, Index, arch);
+ Report.Debug (DebugFlags.JitSymtab, "VARIABLE INFO: {0}
{1} {2} {3} {4}",
+ Mode, Index, Offset, Size, arch);
- if (Mode == AddressMode.Register)
+ if ((Mode == AddressMode.Register) || (Mode ==
AddressMode.RegOffset))
Index = arch.RegisterMap [Index];
Report.Debug (DebugFlags.JitSymtab, "VARIABLE INFO #1:
{0}", Index);
@@ -131,8 +132,10 @@
// here we read the MonoDebugMethodAddress structure
// as written out in mono_debug_add_method.
reader.Position = 16;
+ int code_size = reader.ReadInt32 ();
+ reader.ReadInt32 ();
StartAddress = ReadAddress (reader, domain);
- EndAddress = StartAddress + reader.ReadInt32 ();
+ EndAddress = StartAddress + code_size;
WrapperAddress = ReadAddress (reader, domain);
ReadAddress (reader, domain);
Modified: trunk/debugger/wrapper/mono-debugger-jit-wrapper.h
===================================================================
--- trunk/debugger/wrapper/mono-debugger-jit-wrapper.h 2005-05-11 17:56:50 UTC
(rev 44397)
+++ trunk/debugger/wrapper/mono-debugger-jit-wrapper.h 2005-05-11 17:59:52 UTC
(rev 44398)
@@ -18,9 +18,10 @@
guint64 magic;
guint32 version;
guint32 total_size;
+ guint32 symbol_table_size;
+ guint32 heap_size;
guint8 **generic_trampoline_code;
MonoSymbolTable **symbol_table;
- guint32 symbol_table_size;
guint64 (*compile_method) (guint64 method_argument);
guint64 (*get_virtual_method) (guint64 object_argument, guint64
method_argument);
guint64 (*get_boxed_object_method) (guint64 klass_argument, guint64
val_argument);
@@ -32,7 +33,6 @@
guint64 (*lookup_type) (guint64 dummy_argument, const gchar
*string_argument);
guint64 (*lookup_assembly) (guint64 dummy_argument, const gchar
*string_argument);
gpointer heap;
- guint32 heap_size;
};
/*
@@ -51,8 +51,8 @@
guint32 thread_size;
gpointer main_function;
gpointer notification_address;
+ MonoDebuggerThread *main_thread;
guint32 main_tid;
- MonoDebuggerThread *main_thread;
};
enum {
Modified: trunk/debugger/wrapper/wrapper.c
===================================================================
--- trunk/debugger/wrapper/wrapper.c 2005-05-11 17:56:50 UTC (rev 44397)
+++ trunk/debugger/wrapper/wrapper.c 2005-05-11 17:59:52 UTC (rev 44398)
@@ -36,9 +36,10 @@
MONO_DEBUGGER_MAGIC,
MONO_DEBUGGER_VERSION,
sizeof (MonoDebuggerInfo),
+ sizeof (MonoSymbolTable),
+ HEAP_SIZE,
&mono_generic_trampoline_code,
&mono_symbol_table,
- sizeof (MonoSymbolTable),
&debugger_compile_method,
&debugger_get_virtual_method,
&debugger_get_boxed_object,
@@ -49,8 +50,7 @@
&debugger_class_get_static_field_data,
&debugger_lookup_type,
&debugger_lookup_assembly,
- mono_debugger_heap,
- HEAP_SIZE
+ mono_debugger_heap
};
MonoDebuggerManager MONO_DEBUGGER__manager = {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches