Shuffling --debug around and making it work.

This commit is contained in:
Ben Vanik 2015-07-22 17:26:10 -07:00
parent 2f233c7974
commit a42ab648ed
9 changed files with 28 additions and 24 deletions

View File

@ -9,10 +9,10 @@
#include "xenia/cpu/backend/x64/x64_emitter.h"
#include <cstring>
#include <gflags/gflags.h>
#include <cstring>
#include "xenia/base/assert.h"
#include "xenia/base/atomic.h"
#include "xenia/base/debugging.h"
@ -30,6 +30,7 @@
#include "xenia/cpu/processor.h"
#include "xenia/cpu/symbol_info.h"
#include "xenia/cpu/thread_state.h"
#include "xenia/debug/debugger.h"
#include "xenia/profiling.h"
DEFINE_bool(enable_debugprint_log, false,

View File

@ -16,14 +16,6 @@ DEFINE_string(
"Loads a .map for symbol names and to diff with the generated symbol "
"database.");
#if 0 && DEBUG
#define DEFAULT_DEBUG_FLAG true
#else
#define DEFAULT_DEBUG_FLAG false
#endif
DEFINE_bool(debug, DEFAULT_DEBUG_FLAG,
"Allow debugging and retain debug information.");
DEFINE_bool(disassemble_functions, false,
"Disassemble functions during generation.");

View File

@ -16,7 +16,6 @@ DECLARE_string(cpu);
DECLARE_string(load_module_map);
DECLARE_bool(debug);
DECLARE_bool(disassemble_functions);
DECLARE_bool(trace_functions);

View File

@ -27,6 +27,14 @@
#include "xenia/kernel/objects/xthread.h"
#include "xenia/kernel/objects/xuser_module.h"
#if 0 && DEBUG
#define DEFAULT_DEBUG_FLAG true
#else
#define DEFAULT_DEBUG_FLAG false
#endif
DEFINE_bool(debug, DEFAULT_DEBUG_FLAG,
"Allow debugging and retain debug information.");
DEFINE_string(debug_session_path, "", "Debug output path.");
DEFINE_bool(wait_for_debugger, false,
"Waits for a debugger to attach before starting the game.");

View File

@ -10,6 +10,8 @@
#ifndef XENIA_DEBUG_DEBUGGER_H_
#define XENIA_DEBUG_DEBUGGER_H_
#include <gflags/gflags.h>
#include <map>
#include <memory>
#include <mutex>
@ -23,6 +25,8 @@
#include "xenia/cpu/thread_state.h"
#include "xenia/debug/breakpoint.h"
DECLARE_bool(debug);
namespace xe {
class Emulator;
} // namespace xe

View File

@ -14,7 +14,7 @@
#include "xenia/base/logging.h"
#include "xenia/debug/debugger.h"
DEFINE_int32(gdb_port, 9000, "Debugger GDB server TCP port.");
DEFINE_int32(gdb_port, 9000, "Debugger gdbserver TCP port.");
namespace xe {
namespace debug {

View File

@ -46,8 +46,10 @@ Emulator::Emulator(const std::wstring& command_line)
Emulator::~Emulator() {
// Note that we delete things in the reverse order they were initialized.
if (debugger_) {
// Kill the debugger first, so that we don't have it messing with things.
debugger_->StopSession();
}
// Give the systems time to shutdown before we delete them.
graphics_system_->Shutdown();
@ -96,11 +98,13 @@ X_STATUS Emulator::Setup(ui::Window* display_window) {
// Shared export resolver used to attach and query for HLE exports.
export_resolver_ = std::make_unique<xe::cpu::ExportResolver>();
if (FLAGS_debug) {
// Debugger first, as other parts hook into it.
debugger_.reset(new debug::Debugger(this));
// Create debugger first. Other types hook up to it.
debugger_->StartSession();
}
// Initialize the CPU.
processor_ = std::make_unique<Processor>(

View File

@ -111,9 +111,7 @@ uint32_t XThread::GetCurrentThreadId() {
return thread->guest_object<X_KTHREAD>()->thread_id;
}
uint32_t XThread::last_error() {
return guest_object<X_KTHREAD>()->last_error;
}
uint32_t XThread::last_error() { return guest_object<X_KTHREAD>()->last_error; }
void XThread::set_last_error(uint32_t error_code) {
guest_object<X_KTHREAD>()->last_error = error_code;

View File

@ -158,9 +158,7 @@ bool Win32Window::set_title(const std::wstring& title) {
return true;
}
bool Win32Window::is_fullscreen() const {
return fullscreen_;
}
bool Win32Window::is_fullscreen() const { return fullscreen_; }
void Win32Window::ToggleFullscreen(bool fullscreen) {
if (fullscreen == is_fullscreen()) {