/* Copyright (c) 2013-2014 Jeffrey Pfau * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "GDBController.h" #include "CoreController.h" using namespace QGBA; GDBController::GDBController(QObject* parent) : DebuggerController(&m_gdbStub.d, parent) , m_bindAddress({ IPV4, 0 }) { GDBStubCreate(&m_gdbStub); } ushort GDBController::port() { return m_port; } bool GDBController::isAttached() { return m_gameController && m_gameController->debugger() == &m_gdbStub.d; } void GDBController::setPort(ushort port) { m_port = port; } void GDBController::setBindAddress(uint32_t bindAddress) { m_bindAddress.version = IPV4; m_bindAddress.ipv4 = htonl(bindAddress); } void GDBController::listen() { if (GDBStubListen(&m_gdbStub, m_port, &m_bindAddress)) { if (!isAttached()) { attach(); } emit listening(); } else { detach(); emit listenFailed(); } } void GDBController::shutdownInternal() { GDBStubShutdown(&m_gdbStub); }