Implement qThreadExtraInfo
This commit is contained in:
parent
7e4944cc88
commit
8bd4417b24
9 changed files with 50 additions and 1 deletions
|
@ -185,6 +185,11 @@ namespace ARMeilleure.State
|
||||||
_debugHalt.Set();
|
_debugHalt.Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DebugState GetDebugState()
|
||||||
|
{
|
||||||
|
return (DebugState)_debugState;
|
||||||
|
}
|
||||||
|
|
||||||
internal void OnBreak(ulong address, int imm)
|
internal void OnBreak(ulong address, int imm)
|
||||||
{
|
{
|
||||||
_breakCallback?.Invoke(this, address, imm);
|
_breakCallback?.Invoke(this, address, imm);
|
||||||
|
|
|
@ -139,6 +139,9 @@ namespace Ryujinx.Cpu.AppleHv
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void DebugContinue() => _impl.DebugContinue();
|
public void DebugContinue() => _impl.DebugContinue();
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public DebugState GetDebugState() => _impl.GetDebugState();
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public ulong DebugPc
|
public ulong DebugPc
|
||||||
{
|
{
|
||||||
|
|
|
@ -68,6 +68,11 @@ namespace Ryujinx.Cpu.AppleHv
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DebugState GetDebugState()
|
||||||
|
{
|
||||||
|
return DebugState.Stopped;
|
||||||
|
}
|
||||||
|
|
||||||
public bool GetAndClearInterruptRequested()
|
public bool GetAndClearInterruptRequested()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -228,6 +228,11 @@ namespace Ryujinx.Cpu.AppleHv
|
||||||
HvApi.hv_vcpu_run(_vcpu);
|
HvApi.hv_vcpu_run(_vcpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DebugState GetDebugState()
|
||||||
|
{
|
||||||
|
return (DebugState)_debugState;
|
||||||
|
}
|
||||||
|
|
||||||
public bool GetAndClearInterruptRequested()
|
public bool GetAndClearInterruptRequested()
|
||||||
{
|
{
|
||||||
return Interlocked.Exchange(ref _interruptRequested, 0) != 0;
|
return Interlocked.Exchange(ref _interruptRequested, 0) != 0;
|
||||||
|
|
|
@ -47,6 +47,7 @@ namespace Ryujinx.Cpu.AppleHv
|
||||||
void DebugStop();
|
void DebugStop();
|
||||||
bool DebugStep();
|
bool DebugStep();
|
||||||
void DebugContinue();
|
void DebugContinue();
|
||||||
|
DebugState GetDebugState();
|
||||||
|
|
||||||
ulong DebugPc { get; set; }
|
ulong DebugPc { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,6 +118,7 @@ namespace Ryujinx.Cpu
|
||||||
void DebugStop();
|
void DebugStop();
|
||||||
bool DebugStep();
|
bool DebugStep();
|
||||||
void DebugContinue();
|
void DebugContinue();
|
||||||
|
DebugState GetDebugState();
|
||||||
|
|
||||||
ulong DebugPc { get; set; }
|
ulong DebugPc { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,6 +125,9 @@ namespace Ryujinx.Cpu.Jit
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void DebugContinue() => _impl.DebugContinue();
|
public void DebugContinue() => _impl.DebugContinue();
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public DebugState GetDebugState() => _impl.GetDebugState();
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public ulong DebugPc
|
public ulong DebugPc
|
||||||
{
|
{
|
||||||
|
|
|
@ -295,6 +295,27 @@ namespace Ryujinx.HLE.Debugger
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ss.ConsumePrefix("ThreadExtraInfo,"))
|
||||||
|
{
|
||||||
|
ulong? threadId = ss.ReadRemainingAsThreadUid();
|
||||||
|
if (threadId == null)
|
||||||
|
{
|
||||||
|
ReplyError();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
IExecutionContext ctx = GetThread(threadId.Value);
|
||||||
|
if (ctx.GetDebugState() == DebugState.Stopped)
|
||||||
|
{
|
||||||
|
Reply(ToHex("Stopped"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Reply(ToHex("Not stopped"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (ss.ConsumePrefix("Xfer:features:read:"))
|
if (ss.ConsumePrefix("Xfer:features:read:"))
|
||||||
{
|
{
|
||||||
string feature = ss.ReadUntil(':');
|
string feature = ss.ReadUntil(':');
|
||||||
|
|
|
@ -48,6 +48,11 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DebugState GetDebugState()
|
||||||
|
{
|
||||||
|
return DebugState.Stopped;
|
||||||
|
}
|
||||||
|
|
||||||
public void StopRunning()
|
public void StopRunning()
|
||||||
{
|
{
|
||||||
Running = false;
|
Running = false;
|
||||||
|
|
Loading…
Reference in a new issue