Permalink
Commits on Sep 6, 2005
  1. More Cecil stuff.

    svn path=/branches/debugger-cecil/; revision=49562
    Martin Baulig committed Sep 6, 2005
  2. 2005-09-06 Martin Baulig <martin@ximian.com>

    	* interfaces/ITargetFundamentalType.cs
    	(FundamentalKind): New public enum.
    	(ITargetFundamentalType.Type): Removed.
    	(ITargetFundamentalType.FundamentalKind): New property.
    
    2005-09-05  Martin Baulig  <martin@ximian.com>
    
    svn path=/trunk/debugger/; revision=49552
    Martin Baulig committed Sep 6, 2005
Commits on Sep 5, 2005
  1. 2005-09-05 Martin Baulig <martin@ximian.com>

    	* backends/mono/MonoMember.cs (MonoMember.Position): Removed.
    
    	* backends/mono/MonoLanguageBackend.cs
    	(MonoDebuggerSupport.GetMethodIndex): Removed.
    
    
    svn path=/trunk/debugger/; revision=49458
    Martin Baulig committed Sep 5, 2005
  2. Reflect latest runtime changes.

    svn path=/trunk/debugger/; revision=49446
    Martin Baulig committed Sep 5, 2005
  3. 2005-09-05 Martin Baulig <martin@ximian.com>

    	* backends/mono/MonoLanguageBackend.cs
    	(MonoDebuggerSupport): Moved here from the symbol writer.
    
    
    svn path=/trunk/debugger/; revision=49440
    Martin Baulig committed Sep 5, 2005
  4. 2005-09-05 Martin Baulig <martin@ximian.com>

    	* interfaces/ITargetType.cs (ITargetType.TypeHandle): Removed.
    
    
    svn path=/trunk/debugger/; revision=49419
    Martin Baulig committed Sep 5, 2005
Commits on Sep 2, 2005
  1. Cache the address locally to avoid unneccessary target accesses.

    svn path=/trunk/debugger/; revision=49331
    Martin Baulig committed Sep 2, 2005
  2. 2005-09-02 Martin Baulig <martin@ximian.com>

    	* classes/TargetLocation.cs (TargetLocation.IsValid): Removed.
    
    
    svn path=/trunk/debugger/; revision=49330
    Martin Baulig committed Sep 2, 2005
  3. 2005-09-02 Martin Baulig <martin@ximian.com>

    	* classes/TargetLocation.cs
    	(TargetLocation): Don't implement ICloneable.
    	(TargetLocation.Clone): Removed.
    
    
    svn path=/trunk/debugger/; revision=49329
    Martin Baulig committed Sep 2, 2005
  4. 2005-09-02 Martin Baulig <martin@ximian.com>

    	* classes/TargetLocation.cs
    	(TargetLocation): Removed the `offset' - we're now using the
    	RelativeTargetLocation for this.
    	(TargetLocation.ctor): Don't take an `offset' argument anymore.
    	(TargetLocation.Clone): Likewise.
    
    	* classes/RelativeTargetLocation.cs (RelativeTargetLocation): This
    	is now a location with an offset.
    
    
    svn path=/trunk/debugger/; revision=49324
    Martin Baulig committed Sep 2, 2005
  5. 2005-09-02 Martin Baulig <martin@ximian.com>

    	Use a `TargetBlob' instead of an `ITargetMemoryReader' wherever
    	possible to save serialization costs; this reduces the time to run
    	the test suite from 35s to 17s!.	
    
    	* interfaces/ITargetMemoryAccess.cs
    	(ITargetAccess.TargetInfo): New property.
    	(ITargetMemoryAccess.ReadMemory): Return a `TargetBlob' instead of
    	an `ITargetMemoryReader'.
    
    	* classes/TargetBinaryAccess.cs
    	(TargetBlob.GetReader): New public method; returns a
    	TargetBinaryReader to read this blob.
    
    	* classes/TargetLocation.cs (TargetLocation.ReadMemory): Return a
    	`TargetBlob' instead of an `ITargetMemoryReader'.
    
    	* backends/mono/MonoObject.cs (MonoObject.GetDynamicContents):
    	Return a `TargetBlob' instead of an `ITargetMemoryReader'.
    	(MonoObject.GetDynamicSize): Take a `TargetBlob' instead of an
    	`ITargetMemoryReader'.	
    
    	* backends/mono/MonoFundamentalObjectBase.cs
    	(MonoFundamentalObjectBase.GetObject): Take a `TargetBlob' instead
    	of an `ITargetMemoryReader'.
    
    	* backends/native/NativeObject.cs (NativeObject.GetDynamicContents):
    	Return a `TargetBlob' instead of an `ITargetMemoryReader'.
    	(NativeObject.GetDynamicSize): Take a `TargetBlob' instead of an
    	`ITargetMemoryReader'.	
    
    	* backends/native/NativeFundamentalObject.cs
    	(NativeFundamentalObject.GetObject): Take a `TargetBlob' instead
    	of an `ITargetMemoryReader'.
    
    
    svn path=/trunk/debugger/; revision=49322
    Martin Baulig committed Sep 2, 2005
  6. 2005-09-02 Martin Baulig <martin@ximian.com>

    	* classes/TargetBinaryAccess.cs
    	(TargetBlob.TargetInfo): New readonly field; the .ctor now also
    	takes in ITargetInfo argument.
    
    	* backends/TargetAccess.cs
    	(TargetAccess.TargetInfo): New public property; returns an
    	ITargetInfo instead of an ITargetMemoryInfo - use this if you
    	don't need the extra data from the ITargetMemoryInfo to save
    	serialization costs.
    
    
    svn path=/trunk/debugger/; revision=49319
    Martin Baulig committed Sep 2, 2005
  7. Small fix.

    svn path=/trunk/debugger/; revision=49317
    Martin Baulig committed Sep 2, 2005
Commits on Sep 1, 2005
  1. Small API cleanups.

    svn path=/trunk/debugger/; revision=49278
    Martin Baulig committed Sep 1, 2005
Commits on Aug 31, 2005
  1. Save a few more round-trips.

    svn path=/trunk/debugger/; revision=49207
    Martin Baulig committed Aug 31, 2005
  2. 2005-08-31 Martin Baulig <martin@ximian.com>

    	* backends/SingleSteppingEngine.cs
    	(CommandResult): New internal class
    	(CallMethodData, RuntimeInvokeData): Removed.
    
    	* interfaces/ITargetMemoryAccess.cs
    	(TargetAccessDelegate): New public delegate.
    	(ITargetAccess.Invoke): New method.
    
    
    svn path=/trunk/debugger/; revision=49206
    Martin Baulig committed Aug 31, 2005
  3. Removed old stuff.

    svn path=/trunk/debugger/; revision=49188
    Martin Baulig committed Aug 31, 2005
  4. Make it compile again.

    svn path=/trunk/debugger/; revision=49186
    Martin Baulig committed Aug 31, 2005
  5. 2005-08-31 Martin Baulig <martin@ximian.com>

    	* backends/mono/MonoLanguageBackend.cs
    	(MonoLanguageBackend.init_trampolines): Add support for delegate
    	trampolines.	
    
    
    svn path=/trunk/debugger/; revision=49185
    Martin Baulig committed Aug 31, 2005
  6. 2005-08-31 Martin Baulig <martin@ximian.com>

    	* classes/Style.cs: Moved some of frontend/Style.cs here.
    	(Style): This is now an abstract [Serializable] class and not an
    	interface.  It allows us to do some things in the server's
    	background thread instead of in the client to avoid unneccessary
    	remoting round-trips.
    
    	* frontend/Style.cs
    	(StyleBase): New abstract base class for all the user styles.
    
    	* interfaces/IMethod.cs (IMethod.GetVariableByName): New method.
    
    	* interfaces/ITargetObject.cs: Added some properties from
    	ITargetType to avoid unneccessary remoting round-trips.
    	(ITargetObject.TypeName): New property.
    	(ITargetObject.Kind): New property.
    
    	* interfaces/ILanguage.cs (ILanguage.CreateInstance): Added
    	overloaded version which takes an `ITargetAccess'.
    
    	* interfaces/ITargetMemoryAccess (ITargetMemoryAccess.ReadMemory):
    	Remove the overloaded version which took a `byte[] buffer'.
    	(ITargetAccess): Don't derive from ITargetMemoryAccess.
    
    	* classes/StackFrame.cs (Register): Make it [Serializable].
    	(Registers, StackFrame): Likewise.
    
    	* classes/TargetEvent (TargetEventArgs): Make it [Serializable].
    
    	* backends/Inferior.cs (Inferior): Implement ITargetAccess, not
    	ITargetMemoryAccess.
    
    	* backends/Process.cs
    	(Process): Implement ITargetAccess, not ITargetMemoryAccess.
    	(Process.PrintObject): New public method.  This is now called from
    	`Style.PrintObject()' to do all the computations in the engine's
    	background thread.
    	(Process.PrintType): Likewise.
    
    	* backends/SingleSteppingEngine.cs (CommandAttribute): Make this a
    	public, non-nested class so we can also use this attribute outside
    	the SingleSteppingEngine.
    
    	* backends/TargetAccess.cs (TargetAccess): New public abstract
    	class; this is now used to access the target in the client and on
    	the server and it'll know how to "do the right thing".
    
    	* tests/mdb.exp (mdb_send_and_expect): New proc which also
    	measures the time elapsed.
    
    
    svn path=/trunk/debugger/; revision=49164
    Martin Baulig committed Aug 31, 2005
Commits on Aug 25, 2005
  1. Optimize.

    svn path=/trunk/debugger/; revision=48849
    Martin Baulig committed Aug 25, 2005
  2. 2005-08-25 Martin Baulig <martin@ximian.com>

    	* interfaces/ITargetMemoryAccess.cs
    	(ITargetMemoryAcess.TargetMemoryInfo): New property.
    
    	* classes/TargetAccess.cs (TargetAccess): Make this
    	[Serializable], not MarshalByRefObject.
    
    	* backends/Process.cs (Process): Maintain a local copy of the
    	serializable ITargetMemoryInfo and use it instead of doing a
    	remote invocation on the SingleSteppingEngine.
    
    	* backends/SingleSteppingEnginge.cs
    	(SingleSteppingEngine): Don't implement ITargetMemoryInfo.
    
    
    svn path=/trunk/debugger/; revision=48848
    Martin Baulig committed Aug 25, 2005
  3. 2005-08-25 Martin Baulig <martin@ximian.com>

    	* backends/Debugger.cs
    	(DebuggerBackend): Make this class abstract protected.
    	(DebuggerBackend.ctor): Take a `DebuggerManager' argument.
    	(DebuggerBackend.DebuggerExit): New protected abstract method.
    	(DebuggerBackend.DebuggerExitedEvent): Removed.
    
    	* backends/ThreadManager.cs
    	(ThreadManager.Kill): Kill the main thread last.
    	(ThreadManager.HandleChildEvent): When the main thread exited,
    	send the `TargetExitedEvent' first, then call Kill(), dispose the
    	backend and return true.
    
    	* backends/remoting/DebuggerServer.cs
    	(DebuggerServer.ctor): Take a `DebuggerManager' and a
    	`DebuggerClient' argument.
    	(DebuggerServer.DebuggerExited): Override this and call
    	`client.Shutdown()'.
    
    	* backends/remoting/DebuggerClient.cs
    	(DebuggerClient.Shutdown): Mark this as [OneWay].
    
    	* backends/remoting/DebuggerManager.cs
    	(DebuggerManager.TargetExited): Just remove the client from the
    	hash table, don't call Shutdown().
    
    
    svn path=/trunk/debugger/; revision=48842
    Martin Baulig committed Aug 25, 2005
  4. 2005-08-25 Martin Baulig <martin@ximian.com>

    	* classes/Breakpoint.cs
    	(BreakpointEventHandler): Removed.
    	(Breakpoint.HandlerNeedsFrame): Removed.
    	(Breakpoint.CheckBreakpointHit): Removed the `StackFrame' arg.
    	(Breakpoint.BreakpointHit): Removed.
    
    	* classes/SimpleBreakpoint.cs
    	(BreakpointHitHandler): Removed.
    	(BreakpointCheckHandler): Don't take a `StackFrame' arg.
    
    
    svn path=/trunk/debugger/; revision=48835
    Martin Baulig committed Aug 25, 2005
  5. 2005-08-24 Martin Baulig <martin@ximian.com>

    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.SyncCommandAttribute): Renamed to
    	CommandAttribute and also use it for async commands.
    	(SingleSteppingEngine.SendAsyncCommand): Removed.
    
    
    svn path=/trunk/debugger/; revision=48833
    Martin Baulig committed Aug 25, 2005
  6. 2005-08-24 Martin Baulig <martin@ximian.com>

    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.SyncCommandAttribute): Renamed to
    	CommandAttribute and also use it for async commands.
    	(SingleSteppingEngine.SendAsyncCommand): Removed.
    
    
    svn path=/trunk/debugger/; revision=48832
    Martin Baulig committed Aug 25, 2005
Commits on Aug 24, 2005
  1. Small API change: somehow, we can't marshal an `out TargetAddress'.

    svn path=/trunk/debugger/; revision=48804
    Martin Baulig committed Aug 24, 2005
  2. 2005-08-24 Martin Baulig <martin@ximian.com>

    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.SyncCommandAttribute): Renamed to
    	CommandAttribute and also use it for async commands.
    	(SingleSteppingEngine.SendAsyncCommand): Removed.
    
    
    svn path=/trunk/debugger/; revision=48800
    Martin Baulig committed Aug 24, 2005
  3. 2005-08-24 Martin Baulig <martin@ximian.com>

    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.Stop): Replaced with the former contents of
    	the Interrupt() method.
    	(SingleSteppingEngine.Interrupt): Renamed to Stop().
    
    	* backends/Process.cs (ProcessExitedHandler): Removed.
    	(Process.TargetExitedEvent): Removed.
    	(Process.ProcessExitedEvent): Removed.
    
    	* backends/ThreadManager.cs (ThreadManager.HandleChildEvent): Only
    	raise a `TargetExitedEvent' if the main thread exited.
    
    
    svn path=/trunk/debugger/; revision=48784
    Martin Baulig committed Aug 24, 2005
Commits on Aug 23, 2005
  1. 2005-08-23 Martin Baulig <martin@ximian.com>

    	* frontend/libedit/mono-debugger-readline.c
    	(mono_debugger_readline_static_init): Don't catch SIGINT.
    
    	* backends/classes/Semaphore.cs: Moved to classes/Semaphore.cs and
    	made it a public static class.
    
    	* backends/Process.cs (Process.WaitHandle): New public property.
    	(Process): Removed the `bool wait' argumetns from all async
    	commands; always return immediately.
    
    	* backends/remoting/DebuggerManager.cs
    	(DebuggerManager.Wait): Wait for a Process'es WaitHandle here.
    	(DebuggerManager.Interrupt): Interrupt this waiting.
    
    	* frontend/Main.cs: Catch SIGINT here, run the mainloop in a
    	separate thread and abort commands on SIGINT.
    
    
    svn path=/trunk/debugger/; revision=48756
    Martin Baulig committed Aug 23, 2005
Commits on Aug 21, 2005
  1. 2005-08-21 Martin Baulig <martin@ximian.com>

    	Rewrote the event handling for async commands; the `Process' now
    	sends the command and waits for its completion.
    
    	* backends/Process.cs (Process.SendAsyncCommand): New method;
    	start all async commands here and also wait here for their
    	completion.
    
    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.StartOperation): Removed.
    	(SingleSteppingEngine.AbortOperation): Removed.
    	(SingleSteppingEngine.SendAsyncCommand): Just start the command,
    	don't wait for its completion.
    
    
    svn path=/trunk/debugger/; revision=48630
    Martin Baulig committed Aug 21, 2005
  2. 2005-08-21 Martin Baulig <martin@ximian.com>

    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.OperationFinish): Handle both native and
    	non-native finish here.
    
    
    svn path=/trunk/debugger/; revision=48627
    Martin Baulig committed Aug 21, 2005
  3. 2005-08-21 Martin Baulig <martin@ximian.com>

    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.Operation): Make this class protected.
    	(CommandType): Make this serializable and provide an entry for
    	each operation type.
    	(Command): Removed the `Operation' field and make it serializable.
    
    
    svn path=/trunk/debugger/; revision=48623
    Martin Baulig committed Aug 21, 2005
Commits on Aug 20, 2005
  1. 2005-08-20 Martin Baulig <martin@ximian.com>

    	Drop support for not running the debugger out-of-proc.
    
    	* classes/ScriptingContext.cs
    	(FrameHandle, BacktraceHandle): Mark this [Serializable] and not
    	MarshalByRefObject.
    
    	* classes/TargetLocation.cs
    	(TargetLocation): Mark this [Serializable].
    	(TargetLocation.LocationInvalidEvent): Removed.
    
    	* backends/Process.cs (Process): Don't implement IDisassembler.
    	(Process.SendTargetEvent): Mark this as [OneWay].
    
    	* backends/remoting/DebuggerManager.cs: Make sure we only create
    	on instance of this.
    
    	* backends/SingleSteppingEngine.cs
    	(SingleSteppingEngine.SyncCommandAttribute): New attribute.
    	(SingleSteppingEngine.ProcessCommand): Removed - mark all
    	synchronous commands with the [SyncCommand] attribute - the
    	remoting framework will call ThreadManager.SendSyncCommand() for us.
    	(SingleSteppingEngine.CommandResult): Removed.
    
    	* backends/remoting/DebuggerServerDispatchSink.cs
    	(DebuggerServerDispatchSink.ProcessEvent): Check whether we're
    	invoking a method with the [SyncCommand] attribute and call
    	ThreadManager.CallSyncCommand().
    
    	* backends/ThreadManager.cs
    	(ThreadManager.SendSyncCommand): We're now called from the
    	remoting framework.
    
    
    svn path=/trunk/debugger/; revision=48605
    Martin Baulig committed Aug 20, 2005
  2. 2005-08-20 Martin Baulig <martin@ximian.com>

    	* backends/Process.cs: Moved the implementation of all methods
    	starting commands to the SingleSteppingEngine, duplicate the API
    	entry points here and just call the corresponding method there.
    
    
    svn path=/trunk/debugger/; revision=48593
    Martin Baulig committed Aug 20, 2005