1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
using System;
using System.IO;
namespace Mono.Debugger
{
public delegate void TargetEventHandler (Thread thread, TargetEventArgs args);
[Serializable]
public enum TargetEventType
{
TargetRunning,
TargetStopped,
TargetInterrupted,
TargetHitBreakpoint,
TargetSignaled,
TargetExited,
FrameChanged,
Exception,
UnhandledException
}
[Serializable]
public class TargetEventArgs
{
public readonly TargetEventType Type;
public readonly object Data;
public readonly StackFrame Frame;
public TargetEventArgs (TargetEventType type)
{
this.Type = type;
}
public TargetEventArgs (TargetEventType type, object data)
{
this.Type = type;
this.Data = data;
}
public TargetEventArgs (TargetEventType type, object data, StackFrame frame)
: this (type, data)
{
this.Frame = frame;
}
public TargetEventArgs (TargetEventType type, StackFrame frame)
: this (type, (object) null)
{
this.Frame = frame;
}
public bool IsStopped {
get { return Type == TargetEventType.TargetStopped ||
Type == TargetEventType.TargetHitBreakpoint; }
}
public override string ToString ()
{
return String.Format ("{0} ({1}:{2}:{3})", GetType (), Type, Data, Frame);
}
}
}
|