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();
|
||||
}
|
||||
|
||||
public DebugState GetDebugState()
|
||||
{
|
||||
return (DebugState)_debugState;
|
||||
}
|
||||
|
||||
internal void OnBreak(ulong address, int imm)
|
||||
{
|
||||
_breakCallback?.Invoke(this, address, imm);
|
||||
|
|
|
@ -139,6 +139,9 @@ namespace Ryujinx.Cpu.AppleHv
|
|||
/// <inheritdoc/>
|
||||
public void DebugContinue() => _impl.DebugContinue();
|
||||
|
||||
/// <inheritdoc/>
|
||||
public DebugState GetDebugState() => _impl.GetDebugState();
|
||||
|
||||
/// <inheritdoc/>
|
||||
public ulong DebugPc
|
||||
{
|
||||
|
|
|
@ -68,6 +68,11 @@ namespace Ryujinx.Cpu.AppleHv
|
|||
{
|
||||
}
|
||||
|
||||
public DebugState GetDebugState()
|
||||
{
|
||||
return DebugState.Stopped;
|
||||
}
|
||||
|
||||
public bool GetAndClearInterruptRequested()
|
||||
{
|
||||
return false;
|
||||
|
|
|
@ -228,6 +228,11 @@ namespace Ryujinx.Cpu.AppleHv
|
|||
HvApi.hv_vcpu_run(_vcpu);
|
||||
}
|
||||
|
||||
public DebugState GetDebugState()
|
||||
{
|
||||
return (DebugState)_debugState;
|
||||
}
|
||||
|
||||
public bool GetAndClearInterruptRequested()
|
||||
{
|
||||
return Interlocked.Exchange(ref _interruptRequested, 0) != 0;
|
||||
|
|
|
@ -47,6 +47,7 @@ namespace Ryujinx.Cpu.AppleHv
|
|||
void DebugStop();
|
||||
bool DebugStep();
|
||||
void DebugContinue();
|
||||
DebugState GetDebugState();
|
||||
|
||||
ulong DebugPc { get; set; }
|
||||
}
|
||||
|
|
|
@ -118,7 +118,8 @@ namespace Ryujinx.Cpu
|
|||
void DebugStop();
|
||||
bool DebugStep();
|
||||
void DebugContinue();
|
||||
|
||||
DebugState GetDebugState();
|
||||
|
||||
ulong DebugPc { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,6 +125,9 @@ namespace Ryujinx.Cpu.Jit
|
|||
/// <inheritdoc/>
|
||||
public void DebugContinue() => _impl.DebugContinue();
|
||||
|
||||
/// <inheritdoc/>
|
||||
public DebugState GetDebugState() => _impl.GetDebugState();
|
||||
|
||||
/// <inheritdoc/>
|
||||
public ulong DebugPc
|
||||
{
|
||||
|
|
|
@ -295,6 +295,27 @@ namespace Ryujinx.HLE.Debugger
|
|||
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:"))
|
||||
{
|
||||
string feature = ss.ReadUntil(':');
|
||||
|
|
|
@ -48,6 +48,11 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
|||
{
|
||||
}
|
||||
|
||||
public DebugState GetDebugState()
|
||||
{
|
||||
return DebugState.Stopped;
|
||||
}
|
||||
|
||||
public void StopRunning()
|
||||
{
|
||||
Running = false;
|
||||
|
|
Loading…
Reference in a new issue