Pica/DebugUtils: Add breakpoint functionality.
This commit is contained in:
parent
706f9c5574
commit
2c71ec7052
5 changed files with 204 additions and 2 deletions
|
@ -14,6 +14,8 @@
|
|||
#include "core/core.h"
|
||||
#include "core/settings.h"
|
||||
|
||||
#include "video_core/debug_utils/debug_utils.h"
|
||||
|
||||
#include "video_core/video_core.h"
|
||||
|
||||
#include "citra_qt/version.h"
|
||||
|
@ -65,14 +67,21 @@ void EmuThread::Stop()
|
|||
}
|
||||
stop_run = true;
|
||||
|
||||
// Release emu threads from any breakpoints, so that this doesn't hang forever.
|
||||
Pica::g_debug_context->ClearBreakpoints();
|
||||
|
||||
//core::g_state = core::SYS_DIE;
|
||||
|
||||
wait(500);
|
||||
// TODO: Waiting here is just a bad workaround for retarded shutdown logic.
|
||||
wait(1000);
|
||||
if (isRunning())
|
||||
{
|
||||
WARN_LOG(MASTER_LOG, "EmuThread still running, terminating...");
|
||||
quit();
|
||||
wait(1000);
|
||||
|
||||
// TODO: Waiting 50 seconds can be necessary if the logging subsystem has a lot of spam
|
||||
// queued... This should be fixed.
|
||||
wait(50000);
|
||||
if (isRunning())
|
||||
{
|
||||
WARN_LOG(MASTER_LOG, "EmuThread STILL running, something is wrong here...");
|
||||
|
|
|
@ -36,6 +36,8 @@ GMainWindow::GMainWindow()
|
|||
{
|
||||
LogManager::Init();
|
||||
|
||||
Pica::g_debug_context = Pica::DebugContext::Construct();
|
||||
|
||||
Config config;
|
||||
|
||||
if (!Settings::values.enable_log)
|
||||
|
@ -133,6 +135,8 @@ GMainWindow::~GMainWindow()
|
|||
// will get automatically deleted otherwise
|
||||
if (render_window->parent() == nullptr)
|
||||
delete render_window;
|
||||
|
||||
Pica::g_debug_context.reset();
|
||||
}
|
||||
|
||||
void GMainWindow::BootGame(std::string filename)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue