mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-08-02 22:17:13 +02:00
Compare commits
25 commits
ea4d99349b
...
5b642172e4
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5b642172e4 | ||
![]() |
8fa675de7b | ||
![]() |
2a392add61 | ||
![]() |
91e95f49e8 | ||
![]() |
106d528ad0 | ||
![]() |
9a67734ea7 | ||
![]() |
8ab9d71931 | ||
![]() |
6b50663e99 | ||
![]() |
29f2481213 | ||
![]() |
ee947ae592 | ||
![]() |
6afce6308c | ||
![]() |
55a43dea45 | ||
![]() |
92d8f0eb1c | ||
![]() |
9552cafaaa | ||
![]() |
066a3c9e56 | ||
![]() |
eb8b35b170 | ||
![]() |
a2b35ecce3 | ||
![]() |
9c5d81201d | ||
![]() |
16ad91d05e | ||
![]() |
2a85bfd28a | ||
![]() |
b94c083b1a | ||
![]() |
fceff066c5 | ||
![]() |
2cf9c53c05 | ||
![]() |
6d583862c1 | ||
![]() |
a553958479 |
1 changed files with 3 additions and 13 deletions
|
@ -32,7 +32,6 @@ namespace Ryujinx.HLE.Debugger
|
|||
private Thread DebuggerThread;
|
||||
private Thread MessageHandlerThread;
|
||||
private bool _shuttingDown = false;
|
||||
private ManualResetEventSlim _breakHandlerEvent = new ManualResetEventSlim(false);
|
||||
|
||||
private ulong? cThread;
|
||||
private ulong? gThread;
|
||||
|
@ -238,7 +237,6 @@ namespace Ryujinx.HLE.Debugger
|
|||
case ThreadBreakMessage { Context: var ctx }:
|
||||
DebugProcess.DebugStop();
|
||||
gThread = cThread = ctx.ThreadUid;
|
||||
_breakHandlerEvent.Set();
|
||||
Reply($"T05thread:{ctx.ThreadUid:x};");
|
||||
break;
|
||||
|
||||
|
@ -862,9 +860,6 @@ namespace Ryujinx.HLE.Debugger
|
|||
}
|
||||
catch (InvalidMemoryRegionException)
|
||||
{
|
||||
// InvalidAccessHandler will show an error message, we log it again to tell user the error is from GDB (which can be ignored)
|
||||
// TODO: Do not let InvalidAccessHandler show the error message
|
||||
Logger.Notice.Print(LogClass.GdbStub, $"GDB failed to read memory at 0x{addr:X16}");
|
||||
ReplyError();
|
||||
}
|
||||
}
|
||||
|
@ -1271,20 +1266,15 @@ namespace Ryujinx.HLE.Debugger
|
|||
Messages.Add(new KillMessage());
|
||||
MessageHandlerThread.Join();
|
||||
Messages.Dispose();
|
||||
_breakHandlerEvent.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public void BreakHandler(IExecutionContext ctx, ulong address, int imm)
|
||||
{
|
||||
DebugProcess.DebugInterruptHandler(ctx);
|
||||
|
||||
_breakHandlerEvent.Reset();
|
||||
Messages.Add(new ThreadBreakMessage(ctx, address, imm));
|
||||
// Messages.Add can block, so we log it after adding the message to make sure user can see the log at the same time GDB receives the break message
|
||||
Logger.Notice.Print(LogClass.GdbStub, $"Break hit on thread {ctx.ThreadUid} at pc {address:x016}");
|
||||
// Wait for the process to stop before returning to avoid BreakHander being called multiple times from the same breakpoint
|
||||
_breakHandlerEvent.Wait(5000);
|
||||
|
||||
Messages.Add(new ThreadBreakMessage(ctx, address, imm));
|
||||
DebugProcess.DebugInterruptHandler(ctx);
|
||||
}
|
||||
|
||||
public void StepHandler(IExecutionContext ctx)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue