2017-04-24 12:41:55 +00:00
|
|
|
|
namespace BizHawk.Emulation.Common
|
2014-12-05 00:17:34 +00:00
|
|
|
|
{
|
2016-08-13 20:31:04 +00:00
|
|
|
|
public interface ITraceSink
|
|
|
|
|
{
|
|
|
|
|
void Put(TraceInfo info);
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-05 00:17:34 +00:00
|
|
|
|
/// <summary>
|
2017-04-26 13:44:52 +00:00
|
|
|
|
/// This service allows the core to dump a CPU trace to the client
|
2016-03-02 02:10:09 +00:00
|
|
|
|
/// If available the Trace Logger tool will be available on the client
|
2014-12-05 00:17:34 +00:00
|
|
|
|
/// </summary>
|
2014-12-23 01:58:12 +00:00
|
|
|
|
public interface ITraceable : IEmulatorService
|
2014-12-05 00:17:34 +00:00
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
2017-04-26 14:10:00 +00:00
|
|
|
|
/// Gets the header that would be used by a trace logger
|
2014-12-05 00:17:34 +00:00
|
|
|
|
/// </summary>
|
2017-04-26 14:13:32 +00:00
|
|
|
|
string Header { get; }
|
2014-12-05 00:17:34 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2017-04-26 14:13:32 +00:00
|
|
|
|
/// Sets the sink
|
|
|
|
|
/// that's right, we can only have one sink.
|
|
|
|
|
/// a sink can route to two other sinks if it has to, though
|
2014-12-05 00:17:34 +00:00
|
|
|
|
/// </summary>
|
2017-04-26 14:13:32 +00:00
|
|
|
|
ITraceSink Sink { set; }
|
2016-08-13 20:31:04 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2017-04-26 14:13:32 +00:00
|
|
|
|
/// Gets a value indicating whether racing is enabled
|
2016-08-13 20:31:04 +00:00
|
|
|
|
/// This is defined as equivalent to Sink != null
|
|
|
|
|
/// It's put here because it's such a common operation to check whether it's enabled, and it's not nice to write Sink != null all over
|
|
|
|
|
/// </summary>
|
|
|
|
|
bool Enabled { get; }
|
2014-12-05 00:17:34 +00:00
|
|
|
|
|
2016-08-13 20:31:04 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// This is defined as equivalent to Sink.Put
|
|
|
|
|
/// TBD: could it be defined as equivalent to if(Enabled) Sink.Put()? Probably not, that's just a small amount of wasted work
|
|
|
|
|
/// </summary>
|
|
|
|
|
void Put(TraceInfo info);
|
2016-02-21 22:34:14 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class TraceInfo
|
|
|
|
|
{
|
|
|
|
|
public string Disassembly { get; set; }
|
|
|
|
|
public string RegisterInfo { get; set; }
|
2014-12-05 00:17:34 +00:00
|
|
|
|
}
|
|
|
|
|
}
|