Permalink
Browse files

Released version 0.20 "Bruxelles" of the Mono Debugger :-)

svn path=/tags/debugger-0-20/; revision=61057
  • Loading branch information...
12 parents 939d714 + 0c61b27 + dac2712 + edf0806 + 4bb220a + 5cfba94 + 9feaebe + 173718d + 3871c9e + 192b7ba + 6eb1c0a + cb3a15c commit 44e9063a19f05b4d43706e3b5c7d6e52e8210cbf Martin Baulig committed May 24, 2006
View
@@ -1,3 +1,121 @@
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ Released version 0.20 "Bruxelles" of the Mono Debugger :-)
+
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ * backends/server/library.c
+ (mono_debugger_server_set_notification): This is no longer a
+ "static" method - different processes may have different
+ notification addresses, so we need to make this per-target.
+
+ * backends/server/x86-ptrace.c
+ (InferiorHandle): Added `guint64 nofification_address'; replaces
+ the static variable in x86_64-arch.c/i386-arch.c.
+ (server_ptrace_set_notification): Moved here from x86_64-arch.c.
+
+ * backends/Inferior.cs
+ (Inferior.SetNotificationAddress): New internal method; call
+ mono_debugger_server_set_notification().
+
+ * backends/MonoThreadManager.cs
+ (MonoThreadManager.ThreadCreated): Call SetNotificationAddress()
+ on each newly created inferior.
+
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ * arch/bfdglue.c
+ (bfd_glue_get_section_size): Added `raw_size' argument.
+ (bfd_glue_get_section_contents): Take a pre-alloced buffer as
+ argument rather than allocating it here.
+
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ * backends/ProcessServant.cs
+ (ProcessServant.Kill): Don't call Dispose().
+
+ * backends/server/x86-linux-ptrace.c
+ (server_ptrace_initialize_process): Don't use PTRACE_O_TRACEEXIT;
+ we don't need this.
+
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ * backends/MonoThreadManager.cs
+ (MonoThreadManager.HandleChildEvent): Clear the `csharp_language' on
+ `NofitifactionType.FinalizeManagedCode'.
+
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ * configure.in: Check whether the Mono we're using is recent enough.
+
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ * frontend/Command.cs
+ (BreakCommand.DoResolve): If our base class'es DoResolve() failed,
+ try resolving the expression as an address.
+
+ * frontend/Interpreter.cs
+ (Interpreter.InsertBreakpoint): Added overloaded version which
+ takes a `TargetAddress'.
+
+ * classes/Process.cs
+ (Process.InsertBreakpoint): Added overloaded version which takes a
+ `TargetAddress'.
+
+2006-05-24 Martin Baulig <martin@ximian.com>
+
+ * backends/server/server.h
+ (ServerStatusMessageType): Added `MESSAGE_CHILD_CALLED_EXIT'.
+
+ * backends/server/x86-ptrace.c
+ (server_ptrace_dispatch_event): Use `MESSAGE_CHILD_CALLED_EXIT'
+ for `PTRACE_EVENT_EXIT'.
+
+2006-05-23 Martin Baulig <martin@ximian.com>
+
+ * backends/Inferior.cs
+ (Inferior.PushRegisters): New public method.
+ (Inferior.PopRegisters): New public method.
+
+ * backends/SingleSteppingEngine.cs
+ (SingleSteppingEngine.AcquireThreadLock): Call
+ inferior.PushRegisters() to push all registers onto the stack so
+ the GC will see them.
+ (SingleSteppingEngine.ReleaseThreadLock): Call
+ inferior.PopRegisters() to remove them from the stack again.
+
+ * backends/server/x86-linux-ptrace.c
+ (server_ptrace_initialize_process): Add `PTRACE_O_TRACEEXIT'.
+
+ * backends/server/x86_64-arch.c
+ (server_ptrace_push_registers): New method.
+ (server_ptrace_pop_registers): New method.
+
+ * backends/server/i386-arch.c
+ (server_ptrace_push_registers): New method.
+ (server_ptrace_pop_registers): New method.
+
+ * backends/server/library.c
+ (mono_debugger_server_push_registers): New public method.
+ (mono_debugger_server_pop_registers): New public method.
+
+2006-05-20 Martin Baulig <martin@ximian.com>
+
+ * arch/DwarfReader.cs
+ (DwarfReader.DwarfTargetVariable.GetLocation): Add support for
+ location lists.
+
+2006-05-20 Martin Baulig <martin@ximian.com>
+
+ * arch/DwarfFrameReader.cs: More 64-bit updates.
+
+2006-05-20 Martin Baulig <martin@ximian.com>
+
+ * frontend/Command.cs
+ (SourceCommand.DoResolve): Also lookup native methods.
+ (BreakCommand): Add `-global' argument as a shortcut for
+ `-group global'.
+
2006-05-17 Martin Baulig <martin@ximian.com>
* frontend/Interpreter.cs
View
@@ -1,4 +1,4 @@
-May 12th, 2006 - Martin Baulig
+May 24th, 2006 - Martin Baulig
------------------------------
Released version 0.20 "Bruxelles" of the Mono Debugger :-)
@@ -14,6 +14,13 @@ Released version 0.20 "Bruxelles" of the Mono Debugger :-)
- Cleaned up method lookups; there's a very complex test for them
in test/testsuite/TestMethodLookup.cs.
+- Lots of stability improvements.
+
+- Fixed a very old GC bug which was preventing us from running
+ xsp inside the debugger.
+
+- Fixed a very old race condition which was causing crashes at exit.
+
- Fixed line numbers in stack traces.
- Added experimental support for hardware watchpoints - I needed
@@ -23,6 +30,8 @@ Released version 0.20 "Bruxelles" of the Mono Debugger :-)
than before; I'm still investigating the issue.
I'm currently using `ulimit -Sm 1000000 -Sv 1000000'.
+- The next releases will be "Dublin", "Sidney" and "Cologne".
+
April 10th, 2006 - Martin Baulig
--------------------------------
View
@@ -65,7 +65,7 @@ internal Section (Bfd bfd, IntPtr section)
this.name = bfd_glue_get_section_name (section);
this.vma = bfd_glue_get_section_vma (section);
- this.size = bfd_glue_get_section_size (section);
+ this.size = bfd_glue_get_section_size (section, true);
this.flags = bfd_glue_get_section_flags (section);
contents = new ObjectCache (
@@ -131,7 +131,7 @@ public override string ToString ()
extern static int bfd_glue_get_dynamic_symbols (IntPtr bfd, out IntPtr symtab);
[DllImport("monodebuggerserver")]
- extern static bool bfd_glue_get_section_contents (IntPtr bfd, IntPtr section, bool raw_section, out IntPtr data, out int size);
+ extern static bool bfd_glue_get_section_contents (IntPtr bfd, IntPtr section, IntPtr data, int size);
[DllImport("monodebuggerserver")]
extern static IntPtr bfd_glue_get_first_section (IntPtr bfd);
@@ -146,7 +146,7 @@ public override string ToString ()
extern static string bfd_glue_get_section_name (IntPtr section);
[DllImport("monodebuggerserver")]
- extern static long bfd_glue_get_section_size (IntPtr section);
+ extern static int bfd_glue_get_section_size (IntPtr section, bool raw_section);
[DllImport("monodebuggerserver")]
extern static SectionFlags bfd_glue_get_section_flags (IntPtr section);
@@ -793,16 +793,18 @@ public TargetReader GetSectionReader (string name, bool raw_section)
byte[] GetSectionContents (IntPtr section, bool raw_section)
{
- IntPtr data;
- int size;
-
- if (!bfd_glue_get_section_contents (bfd, section, raw_section, out data, out size))
- return null;
-
- byte[] retval = new byte [size];
- Marshal.Copy (data, retval, 0, size);
- g_free (data);
- return retval;
+ int size = bfd_glue_get_section_size (section, raw_section);
+ IntPtr data = IntPtr.Zero;
+ try {
+ data = Marshal.AllocHGlobal (size);
+ if (!bfd_glue_get_section_contents (bfd, section, data, size))
+ return null;
+ byte[] retval = new byte [size];
+ Marshal.Copy (data, retval, 0, size);
+ return retval;
+ } finally {
+ Marshal.FreeHGlobal (data);
+ }
}
public bool HasSection (string name)
@@ -48,7 +48,7 @@ protected CIE find_cie (long offset)
break;
long end_pos = reader.Position + length;
- int cie_pointer = reader.ReadInt32 ();
+ long cie_pointer = reader.ReadOffset ();
bool is_cie;
if (is_ehframe)
is_cie = cie_pointer == 0;
@@ -61,12 +61,13 @@ protected CIE find_cie (long offset)
}
if (is_ehframe)
- cie_pointer = (int) reader.Position - cie_pointer - 4;
+ cie_pointer = reader.Position - cie_pointer -
+ target.TargetInfo.TargetAddressSize;
CIE cie = find_cie (cie_pointer);
- long initial = ReadEncodedValue (reader, cie.Encoding);
- long range = ReadEncodedValue (reader, cie.Encoding & 0x0f);
+ long initial = reader.ReadAddress ();
+ long range = reader.ReadAddress ();
TargetAddress start = new TargetAddress (
target.TargetInfo.AddressDomain, initial);
@@ -372,7 +373,7 @@ protected class CIE
int code_alignment;
int data_alignment;
int return_register;
- // bool has_z_augmentation;
+ // bool has_z_augmentation;
byte encoding = (byte) DW_EH_PE.udata4;
Column[] columns;
@@ -453,7 +454,7 @@ void read_cie (DwarfBinaryReader reader)
for (int pos = 0; pos < augmentation.Length; pos++) {
if (augmentation [pos] == 'z') {
reader.ReadLeb128 ();
- // has_z_augmentation = true;
+ // has_z_augmentation = true;
continue;
}
Oops, something went wrong.

0 comments on commit 44e9063

Please sign in to comment.