Removing the new old debugger.

Progress on #316.
This commit is contained in:
Ben Vanik 2015-06-30 14:26:25 -07:00
parent ffb1717788
commit cd5d664e9d
126 changed files with 1 additions and 7018 deletions

3
.gitmodules vendored
View File

@ -13,9 +13,6 @@
[submodule "third_party/imgui"]
path = third_party/imgui
url = https://github.com/ocornut/imgui.git
[submodule "third_party/dockpanelsuite"]
path = third_party/dockpanelsuite
url = https://github.com/xenia-project/dockpanelsuite.git
[submodule "third_party/flatbuffers"]
path = third_party/flatbuffers
url = https://github.com/google/flatbuffers.git

View File

@ -1,150 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5AE85790-F2EA-4077-8953-825E9C0AADE9}</ProjectGuid>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<Keyword>ManagedCProj</Keyword>
<RootNamespace>XeniaDebugNative</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CLRSupport>true</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CLRSupport>true</CLRSupport>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\build\Xenia.Cpp.x64.Common.props" />
<Import Project="..\..\build\Xenia.Cpp.x64.Debug.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\build\Xenia.Cpp.x64.Common.props" />
<Import Project="..\..\build\Xenia.Cpp.x64.Release.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level2</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<CompileAs>CompileAsCpp</CompileAs>
<AdditionalIncludeDirectories>$(SolutionDir)\third_party\capstone\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level2</WarningLevel>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<CompileAs>CompileAsCpp</CompileAs>
<AdditionalIncludeDirectories>$(SolutionDir)\third_party\capstone\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>
</RuntimeLibrary>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86BaseInfo.h" />
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86Disassembler.h" />
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86DisassemblerDecoder.h" />
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86DisassemblerDecoderCommon.h" />
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86InstPrinter.h" />
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86Mapping.h" />
<ClInclude Include="..\..\third_party\capstone\cs_priv.h" />
<ClInclude Include="..\..\third_party\capstone\include\capstone.h" />
<ClInclude Include="..\..\third_party\capstone\include\platform.h" />
<ClInclude Include="..\..\third_party\capstone\include\x86.h" />
<ClInclude Include="..\..\third_party\capstone\LEB128.h" />
<ClInclude Include="..\..\third_party\capstone\MathExtras.h" />
<ClInclude Include="..\..\third_party\capstone\MCDisassembler.h" />
<ClInclude Include="..\..\third_party\capstone\MCFixedLenDisassembler.h" />
<ClInclude Include="..\..\third_party\capstone\MCInst.h" />
<ClInclude Include="..\..\third_party\capstone\MCInstrDesc.h" />
<ClInclude Include="..\..\third_party\capstone\MCRegisterInfo.h" />
<ClInclude Include="..\..\third_party\capstone\myinttypes.h" />
<ClInclude Include="..\..\third_party\capstone\SStream.h" />
<ClInclude Include="..\..\third_party\capstone\utils.h" />
<ClInclude Include="..\xenia\base\assert.h" />
<ClInclude Include="..\xenia\base\byte_order.h" />
<ClInclude Include="..\xenia\base\math.h" />
<ClInclude Include="..\xenia\base\string_buffer.h" />
<ClInclude Include="..\xenia\cpu\frontend\ppc_disasm.h" />
<ClInclude Include="..\xenia\cpu\frontend\ppc_instr.h" />
<ClInclude Include="..\xenia\cpu\frontend\ppc_instr_tables.h" />
<ClInclude Include="disassembler.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86Disassembler.c" />
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86DisassemblerDecoder.c" />
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86IntelInstPrinter.c" />
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86Mapping.c" />
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86Module.c" />
<ClCompile Include="..\..\third_party\capstone\cs.c" />
<ClCompile Include="..\..\third_party\capstone\MCInst.c" />
<ClCompile Include="..\..\third_party\capstone\MCInstrDesc.c" />
<ClCompile Include="..\..\third_party\capstone\MCRegisterInfo.c" />
<ClCompile Include="..\..\third_party\capstone\SStream.c" />
<ClCompile Include="..\..\third_party\capstone\utils.c" />
<ClCompile Include="..\xenia\base\string_buffer.cc" />
<ClCompile Include="..\xenia\cpu\frontend\ppc_disasm.cc" />
<ClCompile Include="..\xenia\cpu\frontend\ppc_instr.cc" />
<ClCompile Include="assembly_info.cc" />
<ClCompile Include="disassembler.cc" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter1.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter1_reduce.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter_reduce.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenDisassemblerTables.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenDisassemblerTables_reduce.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenInstrInfo.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenInstrInfo_reduce.inc" />
<None Include="..\..\third_party\capstone\arch\X86\X86GenRegisterInfo.inc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,209 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="third_party">
<UniqueIdentifier>{f0462696-4abd-4dc9-8290-aafff5ca6158}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{1a3b1c52-32cb-477e-9008-f2f9a6171c8c}</UniqueIdentifier>
</Filter>
<Filter Include="src\xenia">
<UniqueIdentifier>{5fb51b29-2462-49de-89c1-e332aafa0ca9}</UniqueIdentifier>
</Filter>
<Filter Include="src\xenia\debug">
<UniqueIdentifier>{15585f2e-55a4-4af5-bb24-6d6649d74ed0}</UniqueIdentifier>
</Filter>
<Filter Include="third_party\capstone">
<UniqueIdentifier>{920bc92f-e430-4c48-86dd-1a697c9a5fd1}</UniqueIdentifier>
</Filter>
<Filter Include="third_party\capstone\include">
<UniqueIdentifier>{d26b9a34-94fd-493b-841e-2ae2561bc584}</UniqueIdentifier>
</Filter>
<Filter Include="third_party\capstone\arch">
<UniqueIdentifier>{c9adeb1a-189d-4877-9bbd-c9948401b63e}</UniqueIdentifier>
</Filter>
<Filter Include="third_party\capstone\arch\X86">
<UniqueIdentifier>{4e8ea226-a18e-413a-95bd-6b3e5f4f8460}</UniqueIdentifier>
</Filter>
<Filter Include="src\Xenia.Debug.Native">
<UniqueIdentifier>{fc34f72d-e3c6-4fe7-9645-7b422ffaad57}</UniqueIdentifier>
</Filter>
<Filter Include="src\xenia\debug\native">
<UniqueIdentifier>{e530b0a2-9f4a-4b85-aee8-7185042251b1}</UniqueIdentifier>
</Filter>
<Filter Include="src\xenia\base">
<UniqueIdentifier>{3945623c-9ad7-4f3e-9918-b31ede4e115f}</UniqueIdentifier>
</Filter>
<Filter Include="src\xenia\cpu">
<UniqueIdentifier>{796d5778-3fc4-42b0-b59a-39340f5b7989}</UniqueIdentifier>
</Filter>
<Filter Include="src\xenia\cpu\frontend">
<UniqueIdentifier>{d4d6e5f8-e3d4-424e-b195-77fc1b3f5590}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\third_party\capstone\cs_priv.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\LEB128.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\MathExtras.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\MCDisassembler.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\MCFixedLenDisassembler.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\MCInst.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\MCInstrDesc.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\MCRegisterInfo.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\myinttypes.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\SStream.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\utils.h">
<Filter>third_party\capstone</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\include\capstone.h">
<Filter>third_party\capstone\include</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\include\platform.h">
<Filter>third_party\capstone\include</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\include\x86.h">
<Filter>third_party\capstone\include</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86BaseInfo.h">
<Filter>third_party\capstone\arch\X86</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86Disassembler.h">
<Filter>third_party\capstone\arch\X86</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86DisassemblerDecoder.h">
<Filter>third_party\capstone\arch\X86</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86DisassemblerDecoderCommon.h">
<Filter>third_party\capstone\arch\X86</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86InstPrinter.h">
<Filter>third_party\capstone\arch\X86</Filter>
</ClInclude>
<ClInclude Include="..\..\third_party\capstone\arch\X86\X86Mapping.h">
<Filter>third_party\capstone\arch\X86</Filter>
</ClInclude>
<ClInclude Include="..\xenia\base\string_buffer.h">
<Filter>src\xenia\base</Filter>
</ClInclude>
<ClInclude Include="..\xenia\cpu\frontend\ppc_disasm.h">
<Filter>src\xenia\cpu\frontend</Filter>
</ClInclude>
<ClInclude Include="..\xenia\cpu\frontend\ppc_instr.h">
<Filter>src\xenia\cpu\frontend</Filter>
</ClInclude>
<ClInclude Include="..\xenia\base\assert.h">
<Filter>src\xenia\base</Filter>
</ClInclude>
<ClInclude Include="..\xenia\base\math.h">
<Filter>src\xenia\base</Filter>
</ClInclude>
<ClInclude Include="disassembler.h">
<Filter>src\Xenia.Debug.Native</Filter>
</ClInclude>
<ClInclude Include="..\xenia\cpu\frontend\ppc_instr_tables.h">
<Filter>src\xenia\cpu\frontend</Filter>
</ClInclude>
<ClInclude Include="..\xenia\base\byte_order.h">
<Filter>src\xenia\base</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\third_party\capstone\cs.c">
<Filter>third_party\capstone</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\MCInst.c">
<Filter>third_party\capstone</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\MCInstrDesc.c">
<Filter>third_party\capstone</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\MCRegisterInfo.c">
<Filter>third_party\capstone</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\SStream.c">
<Filter>third_party\capstone</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\utils.c">
<Filter>third_party\capstone</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86Disassembler.c">
<Filter>third_party\capstone\arch\X86</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86DisassemblerDecoder.c">
<Filter>third_party\capstone\arch\X86</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86IntelInstPrinter.c">
<Filter>third_party\capstone\arch\X86</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86Mapping.c">
<Filter>third_party\capstone\arch\X86</Filter>
</ClCompile>
<ClCompile Include="..\..\third_party\capstone\arch\X86\X86Module.c">
<Filter>third_party\capstone\arch\X86</Filter>
</ClCompile>
<ClCompile Include="assembly_info.cc">
<Filter>src\Xenia.Debug.Native</Filter>
</ClCompile>
<ClCompile Include="..\xenia\base\string_buffer.cc">
<Filter>src\xenia\base</Filter>
</ClCompile>
<ClCompile Include="..\xenia\cpu\frontend\ppc_disasm.cc">
<Filter>src\xenia\cpu\frontend</Filter>
</ClCompile>
<ClCompile Include="disassembler.cc">
<Filter>src\Xenia.Debug.Native</Filter>
</ClCompile>
<ClCompile Include="..\xenia\cpu\frontend\ppc_instr.cc">
<Filter>src\xenia\cpu\frontend</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter_reduce.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter1.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenAsmWriter1_reduce.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenDisassemblerTables.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenDisassemblerTables_reduce.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenInstrInfo.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenInstrInfo_reduce.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
<None Include="..\..\third_party\capstone\arch\X86\X86GenRegisterInfo.inc">
<Filter>third_party\capstone\arch\X86</Filter>
</None>
</ItemGroup>
</Project>

View File

@ -1,46 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly:AssemblyTitleAttribute(L"Xenia.Debug.Native")];
[assembly:AssemblyDescriptionAttribute(L"")];
[assembly:AssemblyConfigurationAttribute(L"")];
[assembly:AssemblyCompanyAttribute(L"")];
[assembly:AssemblyProductAttribute(L"Xenia.Debug.Native")];
[assembly:AssemblyCopyrightAttribute(L"Copyright (c) Ben Vanik 2015")];
[assembly:AssemblyTrademarkAttribute(L"")];
[assembly:AssemblyCultureAttribute(L"")];
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the value or you can default the Revision and Build
// Numbers
// by using the '*' as shown below:
[assembly:AssemblyVersionAttribute("1.0.*")];
[assembly:ComVisible(false)];
[assembly:CLSCompliantAttribute(true)];

View File

@ -1,82 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
#include "Xenia.Debug.Native/disassembler.h"
#include "xenia/base/byte_order.h"
#include "xenia/base/string_buffer.h"
#include "xenia/cpu/frontend/ppc_disasm.h"
#include "third_party/capstone/include/capstone.h"
#include "third_party/capstone/include/x86.h"
namespace Xenia {
namespace Debug {
namespace Native {
using namespace System;
using namespace System::Text;
Disassembler::Disassembler()
: capstone_handle_(0), string_buffer_(new xe::StringBuffer()) {
uintptr_t capstone_handle;
if (cs_open(CS_ARCH_X86, CS_MODE_64, &capstone_handle) != CS_ERR_OK) {
System::Diagnostics::Debug::Fail("Failed to initialize capstone");
return;
}
capstone_handle_ = capstone_handle;
cs_option(capstone_handle_, CS_OPT_SYNTAX, CS_OPT_SYNTAX_INTEL);
cs_option(capstone_handle_, CS_OPT_DETAIL, CS_OPT_OFF);
}
Disassembler::~Disassembler() {
if (capstone_handle_) {
pin_ptr<uintptr_t> capstone_handle = &capstone_handle_;
cs_close(capstone_handle);
}
delete string_buffer_;
}
String ^ Disassembler::DisassemblePPC(IntPtr code_address, size_t code_size) {
string_buffer_->Reset();
auto code_base = reinterpret_cast<const uint32_t*>(code_address.ToPointer());
for (int i = 0; i < code_size / 4; ++i) {
xe::cpu::frontend::InstrData instr;
instr.address = uint32_t(code_address.ToInt64()) + i * 4;
instr.code = xe::byte_swap(code_base[i]);
instr.type = xe::cpu::frontend::GetInstrType(instr.code);
string_buffer_->AppendFormat("%.8X %.8X ", instr.address, instr.code);
xe::cpu::frontend::DisasmPPC(instr, string_buffer_);
string_buffer_->Append("\r\n");
}
return gcnew String(string_buffer_->ToString());
}
String ^ Disassembler::DisassembleX64(IntPtr code_address, size_t code_size) {
string_buffer_->Reset();
auto code_base = reinterpret_cast<const uint8_t*>(code_address.ToPointer());
auto code_ptr = code_base;
size_t remaining_code_size = code_size;
uint64_t address = uint64_t(code_address.ToInt64());
cs_insn insn = {0};
while (remaining_code_size &&
cs_disasm_iter(capstone_handle_, &code_ptr, &remaining_code_size,
&address, &insn)) {
string_buffer_->AppendFormat("%.8X %-6s %s\n", uint32_t(insn.address),
insn.mnemonic, insn.op_str);
}
return gcnew String(string_buffer_->ToString());
}
} // namespace Native
} // namespace Debug
} // namespace Xenia

View File

@ -1,42 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
#ifndef XENIA_DEBUG_NATIVE_DISASSEMBLER_H_
#define XENIA_DEBUG_NATIVE_DISASSEMBLER_H_
#include <cstdint>
#include "xenia/base/string_buffer.h"
namespace Xenia {
namespace Debug {
namespace Native {
using namespace System;
using namespace System::Text;
public
ref class Disassembler {
public:
Disassembler();
~Disassembler();
String ^ DisassemblePPC(IntPtr code_address, size_t code_size);
String ^ DisassembleX64(IntPtr code_address, size_t code_size);
private:
uintptr_t capstone_handle_;
xe::StringBuffer* string_buffer_;
};
} // namespace Native
} // namespace Debug
} // namespace Xenia
#endif // XENIA_DEBUG_NATIVE_DISASSEMBLER_H_

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Controls {
partial class BaseDocument {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "BaseDocument";
}
#endregion
}
}

View File

@ -1,29 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace Xenia.Debug.UI.Controls {
public partial class BaseDocument : DockContent {
public static MainWindow MainWindow;
public BaseDocument() {
InitializeComponent();
}
}
}

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Controls {
partial class BasePanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "BasePanel";
}
#endregion
}
}

View File

@ -1,29 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace Xenia.Debug.UI.Controls {
public partial class BasePanel : DockContent {
public static MainWindow MainWindow;
public BasePanel() {
InitializeComponent();
}
}
}

View File

@ -1,246 +0,0 @@
namespace Xenia.Debug.UI {
partial class MainWindow {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
this.mainMenuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mainToolStrip = new System.Windows.Forms.ToolStrip();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.statusStrip = new System.Windows.Forms.StatusStrip();
this.statusMessageLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.controlToolStrip = new System.Windows.Forms.ToolStrip();
this.threadToolStripLabel = new System.Windows.Forms.ToolStripLabel();
this.threadToolStripComboBox = new System.Windows.Forms.ToolStripComboBox();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.continueToolStripButton = new System.Windows.Forms.ToolStripButton();
this.breakToolStripButton = new System.Windows.Forms.ToolStripButton();
this.stopToolStripButton = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.stepInToolStripButton = new System.Windows.Forms.ToolStripButton();
this.stepOverToolStripButton = new System.Windows.Forms.ToolStripButton();
this.stepOutToolStripButton = new System.Windows.Forms.ToolStripButton();
this.mainMenuStrip.SuspendLayout();
this.mainToolStrip.SuspendLayout();
this.statusStrip.SuspendLayout();
this.controlToolStrip.SuspendLayout();
this.SuspendLayout();
//
// mainMenuStrip
//
this.mainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem});
this.mainMenuStrip.Location = new System.Drawing.Point(0, 0);
this.mainMenuStrip.Name = "mainMenuStrip";
this.mainMenuStrip.Size = new System.Drawing.Size(1571, 24);
this.mainMenuStrip.TabIndex = 0;
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
//
// mainToolStrip
//
this.mainToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton1});
this.mainToolStrip.Location = new System.Drawing.Point(0, 24);
this.mainToolStrip.Name = "mainToolStrip";
this.mainToolStrip.Size = new System.Drawing.Size(1571, 25);
this.mainToolStrip.TabIndex = 3;
this.mainToolStrip.Text = "toolStrip1";
//
// toolStripButton1
//
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
this.toolStripButton1.Text = "toolStripButton1";
//
// statusStrip
//
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.statusMessageLabel});
this.statusStrip.Location = new System.Drawing.Point(0, 1081);
this.statusStrip.Name = "statusStrip";
this.statusStrip.Size = new System.Drawing.Size(1571, 22);
this.statusStrip.TabIndex = 4;
this.statusStrip.Text = "statusStrip1";
//
// statusMessageLabel
//
this.statusMessageLabel.Name = "statusMessageLabel";
this.statusMessageLabel.Size = new System.Drawing.Size(0, 17);
//
// controlToolStrip
//
this.controlToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.threadToolStripLabel,
this.threadToolStripComboBox,
this.toolStripSeparator1,
this.continueToolStripButton,
this.breakToolStripButton,
this.stopToolStripButton,
this.toolStripSeparator2,
this.stepInToolStripButton,
this.stepOverToolStripButton,
this.stepOutToolStripButton});
this.controlToolStrip.Location = new System.Drawing.Point(0, 49);
this.controlToolStrip.Name = "controlToolStrip";
this.controlToolStrip.Size = new System.Drawing.Size(1571, 25);
this.controlToolStrip.TabIndex = 6;
this.controlToolStrip.Text = "toolStrip1";
//
// threadToolStripLabel
//
this.threadToolStripLabel.Name = "threadToolStripLabel";
this.threadToolStripLabel.Size = new System.Drawing.Size(47, 22);
this.threadToolStripLabel.Text = "Thread:";
//
// threadToolStripComboBox
//
this.threadToolStripComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.threadToolStripComboBox.Name = "threadToolStripComboBox";
this.threadToolStripComboBox.Size = new System.Drawing.Size(250, 25);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
//
// continueToolStripButton
//
this.continueToolStripButton.Image = global::Xenia.Debug.UI.Properties.Resources.play;
this.continueToolStripButton.ImageTransparentColor = System.Drawing.Color.Transparent;
this.continueToolStripButton.Name = "continueToolStripButton";
this.continueToolStripButton.Size = new System.Drawing.Size(76, 22);
this.continueToolStripButton.Text = "Continue";
this.continueToolStripButton.Click += new System.EventHandler(this.continueToolStripButton_Click);
//
// breakToolStripButton
//
this.breakToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.breakToolStripButton.Image = global::Xenia.Debug.UI.Properties.Resources.pause;
this.breakToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.breakToolStripButton.Name = "breakToolStripButton";
this.breakToolStripButton.Size = new System.Drawing.Size(23, 22);
this.breakToolStripButton.Text = "Break";
this.breakToolStripButton.Click += new System.EventHandler(this.breakToolStripButton_Click);
//
// stopToolStripButton
//
this.stopToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.stopToolStripButton.Image = global::Xenia.Debug.UI.Properties.Resources.stop;
this.stopToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.stopToolStripButton.Name = "stopToolStripButton";
this.stopToolStripButton.Size = new System.Drawing.Size(23, 22);
this.stopToolStripButton.Text = "Stop";
this.stopToolStripButton.Click += new System.EventHandler(this.stopToolStripButton_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
//
// stepInToolStripButton
//
this.stepInToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.stepInToolStripButton.Image = global::Xenia.Debug.UI.Properties.Resources.step_in;
this.stepInToolStripButton.ImageTransparentColor = System.Drawing.Color.Transparent;
this.stepInToolStripButton.Name = "stepInToolStripButton";
this.stepInToolStripButton.Size = new System.Drawing.Size(23, 22);
this.stepInToolStripButton.Text = "Step In";
this.stepInToolStripButton.Click += new System.EventHandler(this.stepInToolStripButton_Click);
//
// stepOverToolStripButton
//
this.stepOverToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.stepOverToolStripButton.Image = global::Xenia.Debug.UI.Properties.Resources.step_over;
this.stepOverToolStripButton.ImageTransparentColor = System.Drawing.Color.Transparent;
this.stepOverToolStripButton.Name = "stepOverToolStripButton";
this.stepOverToolStripButton.Size = new System.Drawing.Size(23, 22);
this.stepOverToolStripButton.Text = "Step Over";
this.stepOverToolStripButton.Click += new System.EventHandler(this.stepOverToolStripButton_Click);
//
// stepOutToolStripButton
//
this.stepOutToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.stepOutToolStripButton.Image = global::Xenia.Debug.UI.Properties.Resources.step_out;
this.stepOutToolStripButton.ImageTransparentColor = System.Drawing.Color.Transparent;
this.stepOutToolStripButton.Name = "stepOutToolStripButton";
this.stepOutToolStripButton.Size = new System.Drawing.Size(23, 22);
this.stepOutToolStripButton.Text = "Step Out";
this.stepOutToolStripButton.Click += new System.EventHandler(this.stepOutToolStripButton_Click);
//
// MainWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1571, 1103);
this.Controls.Add(this.controlToolStrip);
this.Controls.Add(this.statusStrip);
this.Controls.Add(this.mainToolStrip);
this.Controls.Add(this.mainMenuStrip);
this.IsMdiContainer = true;
this.MainMenuStrip = this.mainMenuStrip;
this.Name = "MainWindow";
this.Text = "Xenia Debugger";
this.mainMenuStrip.ResumeLayout(false);
this.mainMenuStrip.PerformLayout();
this.mainToolStrip.ResumeLayout(false);
this.mainToolStrip.PerformLayout();
this.statusStrip.ResumeLayout(false);
this.statusStrip.PerformLayout();
this.controlToolStrip.ResumeLayout(false);
this.controlToolStrip.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.MenuStrip mainMenuStrip;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStrip mainToolStrip;
private System.Windows.Forms.ToolStripButton toolStripButton1;
private System.Windows.Forms.StatusStrip statusStrip;
private System.Windows.Forms.ToolStripStatusLabel statusMessageLabel;
private WeifenLuo.WinFormsUI.Docking.DockPanel dockPanel;
private System.Windows.Forms.ToolStrip controlToolStrip;
private System.Windows.Forms.ToolStripLabel threadToolStripLabel;
private System.Windows.Forms.ToolStripComboBox threadToolStripComboBox;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton continueToolStripButton;
private System.Windows.Forms.ToolStripButton breakToolStripButton;
private System.Windows.Forms.ToolStripButton stopToolStripButton;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripButton stepInToolStripButton;
private System.Windows.Forms.ToolStripButton stepOverToolStripButton;
private System.Windows.Forms.ToolStripButton stepOutToolStripButton;
}
}

View File

@ -1,226 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
using Xenia.Debug.UI.Views;
using Xenia.Debug.Utilities;
namespace Xenia.Debug.UI {
public partial class MainWindow : Form {
// private DeserializeDockContent deserializeDockContent;
private BreakpointsPanel breakpointsPanel;
private CallstackPanel callstackPanel;
private readonly List<CodeDocument> codeDocuments = new List<CodeDocument>();
private FilesystemPanel filesystemPanel;
private FunctionsPanel functionsPanel;
private HeapDocument heapDocument;
private readonly List<MemoryDocument> memoryDocuments = new List<MemoryDocument>();
private ModulesPanel modulesPanel;
private ProfilePanel profilePanel;
private readonly List<RegistersPanel> registersPanels = new List<RegistersPanel>();
private StatisticsDocument statisticsDocument;
private ThreadsPanel threadsPanel;
private TracePanel tracePanel;
public Debugger Debugger {
get;
}
public MainWindow() {
InitializeComponent();
BasePanel.MainWindow = this;
BaseDocument.MainWindow = this;
dockPanel = new DockPanel();
dockPanel.Dock = System.Windows.Forms.DockStyle.Fill;
dockPanel.DockBackColor = System.Drawing.SystemColors.AppWorkspace;
dockPanel.DockBottomPortion = 200D;
dockPanel.DockLeftPortion = 350D;
dockPanel.Name = "dockPanel";
Controls.Add(dockPanel);
Controls.SetChildIndex(dockPanel, 0);
Debugger = new Debugger((AsyncTask task) => {
BeginInvoke(task);
});
breakpointsPanel = new BreakpointsPanel(Debugger);
callstackPanel = new CallstackPanel(Debugger);
codeDocuments.Add(new CodeDocument(Debugger));
filesystemPanel = new FilesystemPanel(Debugger);
functionsPanel = new FunctionsPanel(Debugger);
heapDocument = new HeapDocument(Debugger);
memoryDocuments.Add(new MemoryDocument(Debugger));
modulesPanel = new ModulesPanel(Debugger);
profilePanel = new ProfilePanel(Debugger);
registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestGeneralPurpose));
registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestFloatingPoint));
registersPanels.Add(new RegistersPanel(Debugger, RegisterClass.GuestVector));
statisticsDocument = new StatisticsDocument(Debugger);
threadsPanel = new ThreadsPanel(Debugger);
tracePanel = new TracePanel(Debugger);
// deserializeDockContent =
// new DeserializeDockContent(GetContentFromPersistString);
SetupDefaultLayout();
// For hotkeys.
KeyPreview = true;
Debugger.StateChanged += Debugger_StateChanged;
Debugger_StateChanged(this, Debugger.CurrentState);
Debugger.CurrentContext.Changed += CurrentContext_Changed;
CurrentContext_Changed(Debugger.CurrentContext);
Debugger.Attach();
}
private void Debugger_StateChanged(object sender, Debugger.State e) {
bool enabled = false;
switch (e) {
case Debugger.State.Idle:
statusMessageLabel.Text = "Idle";
break;
case Debugger.State.Attaching:
statusMessageLabel.Text = "Attaching";
break;
case Debugger.State.Attached:
statusMessageLabel.Text = "Attached";
enabled = true;
break;
case Debugger.State.Detached:
statusMessageLabel.Text = "Detached";
break;
}
controlToolStrip.Enabled = enabled;
}
private void CurrentContext_Changed(Context sender) {
bool enabled = false;
switch (Debugger.CurrentContext.RunState) {
case RunState.Updating:
enabled = false;
break;
case RunState.Running:
enabled = false;
break;
case RunState.Paused:
enabled = true;
break;
}
breakToolStripButton.Enabled = !enabled;
continueToolStripButton.Enabled = enabled;
stepInToolStripButton.Enabled = enabled;
stepOverToolStripButton.Enabled = enabled;
stepOutToolStripButton.Enabled = enabled;
// TODO(benvanik): set thread info/etc.
}
private void SetupDefaultLayout() {
dockPanel.SuspendLayout(true);
filesystemPanel.Show(dockPanel, DockState.DockLeft);
functionsPanel.Show(filesystemPanel.Pane, filesystemPanel);
breakpointsPanel.Show(dockPanel, DockState.DockBottom);
callstackPanel.Show(breakpointsPanel.Pane, breakpointsPanel);
modulesPanel.Show(breakpointsPanel.Pane, DockAlignment.Right, 0.5);
threadsPanel.Show(modulesPanel.Pane, modulesPanel);
registersPanels[registersPanels.Count - 1].Show(filesystemPanel.Pane,
DockAlignment.Right, 0.5);
for (int i = registersPanels.Count - 2; i >= 0; --i) {
registersPanels[i].Show(registersPanels[i + 1].Pane, registersPanels[i + 1]);
}
foreach (var codeDocument in codeDocuments) {
codeDocument.Show(dockPanel, DockState.Document);
}
heapDocument.Show(codeDocuments[0].Pane, DockAlignment.Right, 0.5);
for (int i = 0; i < memoryDocuments.Count; ++i) {
memoryDocuments[i].Show(heapDocument.Pane, heapDocument);
}
tracePanel.Show(heapDocument.Pane, DockAlignment.Bottom, 0.5);
statisticsDocument.Show(tracePanel.Pane, tracePanel);
dockPanel.ResumeLayout(true, true);
}
public void OpenFunction(Function function) {
var document = codeDocuments[0];
document.Show(function);
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
//if (keyData == (Keys.Control | Keys.F)) {
// MessageBox.Show("What the Ctrl+F?");
// return true;
//}
if (keyData == Keys.F11) {
stepInToolStripButton_Click(this, EventArgs.Empty);
return true;
} else if (keyData == Keys.F10) {
stepOverToolStripButton_Click(this, EventArgs.Empty);
return true;
} else if (keyData == (Keys.Shift | Keys.F11)) {
stepOutToolStripButton_Click(this, EventArgs.Empty);
return true;
} else if (keyData == (Keys.Pause)) {
breakToolStripButton_Click(this, EventArgs.Empty);
return true;
} else if (keyData == (Keys.Shift | Keys.F5)) {
stopToolStripButton_Click(this, EventArgs.Empty);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
private void continueToolStripButton_Click(object sender, EventArgs e) {
Debugger.Continue();
}
private void breakToolStripButton_Click(object sender, EventArgs e) {
Debugger.Break();
}
private void stopToolStripButton_Click(object sender, EventArgs e) {
Debugger.Stop();
}
private void stepInToolStripButton_Click(object sender, EventArgs e) {
Debugger.StepIn();
}
private void stepOverToolStripButton_Click(object sender, EventArgs e) {
Debugger.StepOver();
}
private void stepOutToolStripButton_Click(object sender, EventArgs e) {
Debugger.StepOut();
}
}
}

View File

@ -1,151 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="mainMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="mainMenuStrip.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="mainToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value>
</metadata>
<metadata name="controlToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>346, 17</value>
</metadata>
</root>

View File

@ -1,24 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Windows.Forms;
namespace Xenia.Debug.UI {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread] static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainWindow());
}
}
}

View File

@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Xenia.Debug.UI")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Xenia.Debug.UI")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("75a94ceb-442c-45b6-aeec-a5f16d4543f3")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,123 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Xenia.Debug.UI.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xenia.Debug.UI.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap pause {
get {
object obj = ResourceManager.GetObject("pause", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap play {
get {
object obj = ResourceManager.GetObject("play", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap step_in {
get {
object obj = ResourceManager.GetObject("step_in", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap step_out {
get {
object obj = ResourceManager.GetObject("step_out", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap step_over {
get {
object obj = ResourceManager.GetObject("step_over", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap stop {
get {
object obj = ResourceManager.GetObject("stop", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -1,139 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="pause" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pause.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="play" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\play.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="step_in" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\step_in.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="step_out" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\step_out.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="step_over" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\step_over.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="stop" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\stop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -1,26 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Xenia.Debug.UI.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -1,7 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

View File

@ -1,67 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class BreakpointsPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.breakpointsListView = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SuspendLayout();
//
// breakpointsListView
//
this.breakpointsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.breakpointsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2,
this.columnHeader3});
this.breakpointsListView.Location = new System.Drawing.Point(12, 12);
this.breakpointsListView.Name = "breakpointsListView";
this.breakpointsListView.Size = new System.Drawing.Size(738, 208);
this.breakpointsListView.TabIndex = 0;
this.breakpointsListView.UseCompatibleStateImageBehavior = false;
this.breakpointsListView.View = System.Windows.Forms.View.Details;
//
// BreakpointsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(762, 232);
this.Controls.Add(this.breakpointsListView);
this.Name = "BreakpointsPanel";
this.Text = "Breakpoints";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView breakpointsListView;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;
}
}

View File

@ -1,43 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class BreakpointsPanel : BasePanel {
private readonly Debugger debugger;
public BreakpointsPanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
debugger.BreakpointList.Changed += UpdateBreakpointsList;
UpdateBreakpointsList(debugger.BreakpointList);
}
private void UpdateBreakpointsList(BreakpointList sender) {
breakpointsListView.BeginUpdate();
breakpointsListView.Items.Clear();
foreach (Breakpoint breakpoint in debugger.BreakpointList) {
breakpointsListView.Items.Add("Breakpoint A");
}
breakpointsListView.EndUpdate();
}
}
}

View File

@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,67 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class CallstackPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.framesListView = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SuspendLayout();
//
// framesListView
//
this.framesListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.framesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2,
this.columnHeader3});
this.framesListView.Location = new System.Drawing.Point(12, 12);
this.framesListView.Name = "framesListView";
this.framesListView.Size = new System.Drawing.Size(735, 217);
this.framesListView.TabIndex = 0;
this.framesListView.UseCompatibleStateImageBehavior = false;
this.framesListView.View = System.Windows.Forms.View.Details;
//
// CallstackPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(759, 241);
this.Controls.Add(this.framesListView);
this.Name = "CallstackPanel";
this.Text = "Callstack";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView framesListView;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;
}
}

View File

@ -1,31 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class CallstackPanel : BasePanel {
private readonly Debugger debugger;
public CallstackPanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
}
}

View File

@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,143 +0,0 @@
using System;
namespace Xenia.Debug.UI.Views {
partial class CodeDocument {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.sourceTextBox = new System.Windows.Forms.TextBox();
this.panel1 = new System.Windows.Forms.Panel();
this.disasmMachineCodeCheckBox = new System.Windows.Forms.CheckBox();
this.disasmOptimizedHirCheckBox = new System.Windows.Forms.CheckBox();
this.disasmUnoptimizedHirCheckBox = new System.Windows.Forms.CheckBox();
this.disasmPpcCheckBox = new System.Windows.Forms.CheckBox();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// sourceTextBox
//
this.sourceTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.sourceTextBox.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.sourceTextBox.HideSelection = false;
this.sourceTextBox.Location = new System.Drawing.Point(12, 75);
this.sourceTextBox.MaxLength = 99999;
this.sourceTextBox.Multiline = true;
this.sourceTextBox.Name = "sourceTextBox";
this.sourceTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.sourceTextBox.Size = new System.Drawing.Size(740, 563);
this.sourceTextBox.TabIndex = 0;
//
// panel1
//
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panel1.Controls.Add(this.disasmMachineCodeCheckBox);
this.panel1.Controls.Add(this.disasmOptimizedHirCheckBox);
this.panel1.Controls.Add(this.disasmUnoptimizedHirCheckBox);
this.panel1.Controls.Add(this.disasmPpcCheckBox);
this.panel1.Location = new System.Drawing.Point(12, 644);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(740, 17);
this.panel1.TabIndex = 1;
//
// disasmMachineCodeCheckBox
//
this.disasmMachineCodeCheckBox.AutoSize = true;
this.disasmMachineCodeCheckBox.Checked = true;
this.disasmMachineCodeCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.disasmMachineCodeCheckBox.Location = new System.Drawing.Point(302, 0);
this.disasmMachineCodeCheckBox.Name = "disasmMachineCodeCheckBox";
this.disasmMachineCodeCheckBox.Size = new System.Drawing.Size(95, 17);
this.disasmMachineCodeCheckBox.TabIndex = 3;
this.disasmMachineCodeCheckBox.Text = "Machine Code";
this.disasmMachineCodeCheckBox.UseVisualStyleBackColor = true;
this.disasmMachineCodeCheckBox.CheckedChanged += new System.EventHandler(this.DisasmCheckBoxChanged);
//
// disasmOptimizedHirCheckBox
//
this.disasmOptimizedHirCheckBox.AutoSize = true;
this.disasmOptimizedHirCheckBox.Checked = true;
this.disasmOptimizedHirCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.disasmOptimizedHirCheckBox.Location = new System.Drawing.Point(202, 0);
this.disasmOptimizedHirCheckBox.Name = "disasmOptimizedHirCheckBox";
this.disasmOptimizedHirCheckBox.Size = new System.Drawing.Size(94, 17);
this.disasmOptimizedHirCheckBox.TabIndex = 2;
this.disasmOptimizedHirCheckBox.Text = "Optimized HIR";
this.disasmOptimizedHirCheckBox.UseVisualStyleBackColor = true;
this.disasmOptimizedHirCheckBox.CheckedChanged += new System.EventHandler(this.DisasmCheckBoxChanged);
//
// disasmUnoptimizedHirCheckBox
//
this.disasmUnoptimizedHirCheckBox.AutoSize = true;
this.disasmUnoptimizedHirCheckBox.Checked = true;
this.disasmUnoptimizedHirCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.disasmUnoptimizedHirCheckBox.Location = new System.Drawing.Point(90, 0);
this.disasmUnoptimizedHirCheckBox.Name = "disasmUnoptimizedHirCheckBox";
this.disasmUnoptimizedHirCheckBox.Size = new System.Drawing.Size(106, 17);
this.disasmUnoptimizedHirCheckBox.TabIndex = 1;
this.disasmUnoptimizedHirCheckBox.Text = "Unoptimized HIR";
this.disasmUnoptimizedHirCheckBox.UseVisualStyleBackColor = true;
this.disasmUnoptimizedHirCheckBox.CheckedChanged += new System.EventHandler(this.DisasmCheckBoxChanged);
//
// disasmPpcCheckBox
//
this.disasmPpcCheckBox.AutoSize = true;
this.disasmPpcCheckBox.Checked = true;
this.disasmPpcCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.disasmPpcCheckBox.Location = new System.Drawing.Point(0, 0);
this.disasmPpcCheckBox.Name = "disasmPpcCheckBox";
this.disasmPpcCheckBox.Size = new System.Drawing.Size(84, 17);
this.disasmPpcCheckBox.TabIndex = 0;
this.disasmPpcCheckBox.Text = "Source PPC";
this.disasmPpcCheckBox.UseVisualStyleBackColor = true;
this.disasmPpcCheckBox.CheckedChanged += new System.EventHandler(this.DisasmCheckBoxChanged);
//
// CodeDocument
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(764, 673);
this.Controls.Add(this.panel1);
this.Controls.Add(this.sourceTextBox);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "CodeDocument";
this.Text = "Code";
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox sourceTextBox;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.CheckBox disasmMachineCodeCheckBox;
private System.Windows.Forms.CheckBox disasmOptimizedHirCheckBox;
private System.Windows.Forms.CheckBox disasmUnoptimizedHirCheckBox;
private System.Windows.Forms.CheckBox disasmPpcCheckBox;
}
}

View File

@ -1,89 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class CodeDocument : BaseDocument {
private readonly Debugger debugger;
private Function function;
public CodeDocument(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
public async void Show(Function function) {
this.function = function;
this.sourceTextBox.Text = "Loading...";
await function.Invalidate();
UpdateSourceTextBox();
}
private void UpdateSourceTextBox() {
string combinedString = "";
if (disasmPpcCheckBox.Checked) {
combinedString += "Source PPC" + Environment.NewLine;
if (function.DisasmPpc != null) {
combinedString += function.DisasmPpc;
} else {
combinedString += "(unavailable)";
}
combinedString += Environment.NewLine + Environment.NewLine;
}
if (disasmUnoptimizedHirCheckBox.Checked) {
combinedString += "Unoptimized HIR" + Environment.NewLine;
if (function.DisasmHirUnoptimized != null) {
combinedString += function.DisasmHirUnoptimized;
} else {
combinedString += "(unavailable)";
}
combinedString += Environment.NewLine + Environment.NewLine;
}
if (disasmOptimizedHirCheckBox.Checked) {
combinedString += "Optimized HIR" + Environment.NewLine;
if (function.DisasmHirOptimized != null) {
combinedString += function.DisasmHirOptimized;
} else {
combinedString += "(unavailable)";
}
combinedString += Environment.NewLine + Environment.NewLine;
}
if (disasmMachineCodeCheckBox.Checked) {
combinedString += "Machine Code" + Environment.NewLine;
if (function.DisasmMachineCode != null) {
combinedString += function.DisasmMachineCode;
} else {
combinedString += "(unavailable)";
}
combinedString += Environment.NewLine + Environment.NewLine;
}
this.sourceTextBox.Text = combinedString;
}
private void DisasmCheckBoxChanged(object sender, EventArgs e) {
UpdateSourceTextBox();
}
}
}

View File

@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class FilesystemPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Filesystem";
}
#endregion
}
}

View File

@ -1,31 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class FilesystemPanel : BasePanel {
private readonly Debugger debugger;
public FilesystemPanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
}
}

View File

@ -1,89 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class FunctionsPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.modulesComboBox = new System.Windows.Forms.ComboBox();
this.filterTextBox = new System.Windows.Forms.TextBox();
this.functionsListBox = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// modulesComboBox
//
this.modulesComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.modulesComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.modulesComboBox.FormattingEnabled = true;
this.modulesComboBox.Location = new System.Drawing.Point(12, 12);
this.modulesComboBox.Name = "modulesComboBox";
this.modulesComboBox.Size = new System.Drawing.Size(234, 21);
this.modulesComboBox.TabIndex = 0;
this.modulesComboBox.SelectedIndexChanged += new System.EventHandler(this.modulesComboBox_SelectedIndexChanged);
//
// filterTextBox
//
this.filterTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.filterTextBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.filterTextBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
this.filterTextBox.Location = new System.Drawing.Point(12, 569);
this.filterTextBox.Name = "filterTextBox";
this.filterTextBox.Size = new System.Drawing.Size(234, 20);
this.filterTextBox.TabIndex = 1;
this.filterTextBox.TextChanged += new System.EventHandler(this.filterTextBox_TextChanged);
//
// functionsListBox
//
this.functionsListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.functionsListBox.FormattingEnabled = true;
this.functionsListBox.Location = new System.Drawing.Point(12, 39);
this.functionsListBox.Name = "functionsListBox";
this.functionsListBox.Size = new System.Drawing.Size(234, 524);
this.functionsListBox.TabIndex = 2;
this.functionsListBox.SelectedIndexChanged += new System.EventHandler(this.functionsListBox_SelectedIndexChanged);
//
// FunctionsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(258, 600);
this.Controls.Add(this.functionsListBox);
this.Controls.Add(this.filterTextBox);
this.Controls.Add(this.modulesComboBox);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "FunctionsPanel";
this.Text = "Functions";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ComboBox modulesComboBox;
private System.Windows.Forms.TextBox filterTextBox;
private System.Windows.Forms.ListBox functionsListBox;
}
}

View File

@ -1,110 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class FunctionsPanel : BasePanel {
private readonly Debugger debugger;
public FunctionsPanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
RefreshFunctionList();
debugger.ModuleList.Changed += UpdateModulesList;
UpdateModulesList(debugger.ModuleList);
}
private void UpdateModulesList(ModuleList sender) {
modulesComboBox.BeginUpdate();
modulesComboBox.Items.Clear();
foreach (Module module in debugger.ModuleList) {
modulesComboBox.Items.Add(module);
module.Changed += Module_Changed;
}
modulesComboBox.EndUpdate();
}
private void Module_Changed(KernelObject sender) {
if (modulesComboBox.SelectedItem != sender) {
return;
}
RefreshFunctionList();
}
private void modulesComboBox_SelectedIndexChanged(object sender, EventArgs e) {
if (modulesComboBox.SelectedItem == null) {
return;
}
var module = (Module)modulesComboBox.SelectedItem;
RefreshFunctionList();
}
private void RefreshFunctionList() {
if (modulesComboBox.SelectedItem == null) {
functionsListBox.Items.Clear();
functionsListBox.Enabled = false;
filterTextBox.Enabled = false;
return;
}
functionsListBox.Enabled = true;
filterTextBox.Enabled = true;
var module = (Module)modulesComboBox.SelectedItem;
functionsListBox.BeginUpdate();
functionsListBox.Items.Clear();
foreach (Function function in module) {
functionsListBox.Items.Add(function);
}
functionsListBox.EndUpdate();
}
private void filterTextBox_TextChanged(object sender, EventArgs e) {
var module = (Module)modulesComboBox.SelectedItem;
var filter = filterTextBox.Text.ToLowerInvariant();
functionsListBox.BeginUpdate();
functionsListBox.Items.Clear();
foreach (Function function in module) {
if (filter.Length == 0 || function.LowerName.Contains(filter)) {
functionsListBox.Items.Add(function);
}
}
functionsListBox.EndUpdate();
}
private void functionsListBox_SelectedIndexChanged(object sender, EventArgs e) {
var function = (Function)functionsListBox.SelectedItem;
if (function == null) {
return;
}
MainWindow.OpenFunction(function);
}
}
}

View File

@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class HeapDocument {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Heap";
}
#endregion
}
}

View File

@ -1,31 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class HeapDocument : BaseDocument {
private readonly Debugger debugger;
public HeapDocument(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
}
}

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class MemoryDocument {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Memory";
}
#endregion
}
}

View File

@ -1,31 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class MemoryDocument : BaseDocument {
private readonly Debugger debugger;
public MemoryDocument(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
}
}

View File

@ -1,90 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class ModulesPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
System.Windows.Forms.ColumnHeader columnHeader1;
System.Windows.Forms.ColumnHeader columnHeader2;
System.Windows.Forms.ColumnHeader columnHeader3;
System.Windows.Forms.ColumnHeader columnHeader4;
this.modulesListView = new System.Windows.Forms.ListView();
columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SuspendLayout();
//
// modulesListView
//
this.modulesListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.modulesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
columnHeader1,
columnHeader2,
columnHeader3,
columnHeader4});
this.modulesListView.Location = new System.Drawing.Point(12, 12);
this.modulesListView.Name = "modulesListView";
this.modulesListView.Size = new System.Drawing.Size(748, 206);
this.modulesListView.TabIndex = 0;
this.modulesListView.UseCompatibleStateImageBehavior = false;
this.modulesListView.View = System.Windows.Forms.View.Details;
//
// columnHeader1
//
columnHeader1.Text = "Handle";
//
// columnHeader2
//
columnHeader2.Text = "Type";
columnHeader2.Width = 80;
//
// columnHeader3
//
columnHeader3.Text = "Name";
columnHeader3.Width = 120;
//
// columnHeader4
//
columnHeader4.Text = "Path";
columnHeader4.Width = 300;
//
// ModulesPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(772, 230);
this.Controls.Add(this.modulesListView);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "ModulesPanel";
this.Text = "Modules";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView modulesListView;
}
}

View File

@ -1,50 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class ModulesPanel : BasePanel {
private readonly Debugger debugger;
public ModulesPanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
debugger.ModuleList.Changed += UpdateModulesList;
UpdateModulesList(debugger.ModuleList);
}
private void UpdateModulesList(ModuleList sender) {
modulesListView.BeginUpdate();
modulesListView.Items.Clear();
foreach (Module module in debugger.ModuleList) {
var item = new ListViewItem(new string[]{
module.Handle.ToString("X4"),
module.ModuleType == xe.debug.proto.ModuleType.Kernel ? "Kernel"
: "User",
module.Name,
module.Path,
});
modulesListView.Items.Add(item);
}
modulesListView.EndUpdate();
}
}
}

View File

@ -1,132 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="columnHeader1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="columnHeader2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="columnHeader3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="columnHeader4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class ProfilePanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Profile";
}
#endregion
}
}

View File

@ -1,31 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class ProfilePanel : BasePanel {
private readonly Debugger debugger;
public ProfilePanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
}
}

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class RegistersPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Registers";
}
#endregion
}
}

View File

@ -1,62 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public enum RegisterClass {
GuestGeneralPurpose,
GuestFloatingPoint,
GuestVector,
HostGeneralPurpose,
HostAvx,
}
public partial class RegistersPanel : BasePanel {
private readonly Debugger debugger;
private readonly RegisterClass registerClass;
public RegistersPanel(Debugger debugger, RegisterClass registerClass) {
InitializeComponent();
this.debugger = debugger;
this.registerClass = registerClass;
switch (registerClass) {
case RegisterClass.GuestGeneralPurpose:
this.Text = "GPR";
break;
case RegisterClass.GuestFloatingPoint:
this.Text = "FPR";
break;
case RegisterClass.GuestVector:
this.Text = "VR";
break;
case RegisterClass.HostGeneralPurpose:
this.Text = "x64";
break;
case RegisterClass.HostAvx:
this.Text = "AVX";
break;
default:
System.Diagnostics.Debug.Fail("Unhandled case: " + registerClass);
break;
}
}
}
}

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class StatisticsDocument {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Statistics";
}
#endregion
}
}

View File

@ -1,31 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class StatisticsDocument : BaseDocument {
private readonly Debugger debugger;
public StatisticsDocument(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
}
}

View File

@ -1,67 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class ThreadsPanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.threadsListView = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SuspendLayout();
//
// threadsListView
//
this.threadsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.threadsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2,
this.columnHeader3});
this.threadsListView.Location = new System.Drawing.Point(12, 12);
this.threadsListView.Name = "threadsListView";
this.threadsListView.Size = new System.Drawing.Size(731, 287);
this.threadsListView.TabIndex = 1;
this.threadsListView.UseCompatibleStateImageBehavior = false;
this.threadsListView.View = System.Windows.Forms.View.Details;
//
// ThreadsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(755, 311);
this.Controls.Add(this.threadsListView);
this.Name = "ThreadsPanel";
this.Text = "Threads";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView threadsListView;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;
}
}

View File

@ -1,43 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class ThreadsPanel : BasePanel {
private readonly Debugger debugger;
public ThreadsPanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
debugger.ThreadList.Changed += UpdateThreadList;
UpdateThreadList(debugger.ThreadList);
}
private void UpdateThreadList(ThreadList sender) {
threadsListView.BeginUpdate();
threadsListView.Items.Clear();
foreach (Thread thread in debugger.ThreadList) {
threadsListView.Items.Add("Thread A");
}
threadsListView.EndUpdate();
}
}
}

View File

@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,33 +0,0 @@
namespace Xenia.Debug.UI.Views {
partial class TracePanel {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Trace";
}
#endregion
}
}

View File

@ -1,31 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using Xenia.Debug.UI.Controls;
namespace Xenia.Debug.UI.Views {
public partial class TracePanel : BasePanel {
private readonly Debugger debugger;
public TracePanel(Debugger debugger) {
InitializeComponent();
this.debugger = debugger;
}
}
}

View File

@ -1,225 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{75A94CEB-442C-45B6-AEEC-A5F16D4543F3}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Xenia.Debug.UI</RootNamespace>
<AssemblyName>Xenia.Debug.UI</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\..\build\bin\Debug\</OutputPath>
<IntermediateOutputPath>..\..\build\obj\Debug\</IntermediateOutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>..\..\build\bin\Release\</OutputPath>
<IntermediateOutputPath>..\..\build\obj\Release\</IntermediateOutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup>
<StartupObject>Xenia.Debug.UI.Program</StartupObject>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controls\BaseDocument.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\BaseDocument.Designer.cs">
<DependentUpon>BaseDocument.cs</DependentUpon>
</Compile>
<Compile Include="Controls\BasePanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\BasePanel.Designer.cs">
<DependentUpon>BasePanel.cs</DependentUpon>
</Compile>
<Compile Include="MainWindow.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainWindow.Designer.cs">
<DependentUpon>MainWindow.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Views\BreakpointsPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\BreakpointsPanel.Designer.cs">
<DependentUpon>BreakpointsPanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\CallstackPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\CallstackPanel.Designer.cs">
<DependentUpon>CallstackPanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\CodeDocument.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\CodeDocument.Designer.cs">
<DependentUpon>CodeDocument.cs</DependentUpon>
</Compile>
<Compile Include="Views\FilesystemPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\FilesystemPanel.Designer.cs">
<DependentUpon>FilesystemPanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\FunctionsPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\FunctionsPanel.Designer.cs">
<DependentUpon>FunctionsPanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\HeapDocument.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\HeapDocument.Designer.cs">
<DependentUpon>HeapDocument.cs</DependentUpon>
</Compile>
<Compile Include="Views\MemoryDocument.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\MemoryDocument.Designer.cs">
<DependentUpon>MemoryDocument.cs</DependentUpon>
</Compile>
<Compile Include="Views\ModulesPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\ModulesPanel.Designer.cs">
<DependentUpon>ModulesPanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\ProfilePanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\ProfilePanel.Designer.cs">
<DependentUpon>ProfilePanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\RegistersPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\RegistersPanel.Designer.cs">
<DependentUpon>RegistersPanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\StatisticsDocument.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\StatisticsDocument.Designer.cs">
<DependentUpon>StatisticsDocument.cs</DependentUpon>
</Compile>
<Compile Include="Views\ThreadsPanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\ThreadsPanel.Designer.cs">
<DependentUpon>ThreadsPanel.cs</DependentUpon>
</Compile>
<Compile Include="Views\TracePanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Views\TracePanel.Designer.cs">
<DependentUpon>TracePanel.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="MainWindow.resx">
<DependentUpon>MainWindow.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="Views\BreakpointsPanel.resx">
<DependentUpon>BreakpointsPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Views\CallstackPanel.resx">
<DependentUpon>CallstackPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Views\CodeDocument.resx">
<DependentUpon>CodeDocument.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Views\FunctionsPanel.resx">
<DependentUpon>FunctionsPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Views\ModulesPanel.resx">
<DependentUpon>ModulesPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Views\ThreadsPanel.resx">
<DependentUpon>ThreadsPanel.cs</DependentUpon>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\third_party\dockpanelsuite\WinFormsUI\WinFormsUI.csproj">
<Project>{c75532c4-765b-418e-b09b-46d36b2abdb1}</Project>
<Name>WinFormsUI</Name>
</ProjectReference>
<ProjectReference Include="..\Xenia.Debug\Xenia.Debug.csproj">
<Project>{58348c66-1b0d-497c-b51a-28e99df1ef74}</Project>
<Name>Xenia.Debug</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Resources\pause.png" />
<Content Include="Resources\play.png" />
<Content Include="Resources\step_in.bmp" />
<Content Include="Resources\step_out.bmp" />
<Content Include="Resources\step_over.bmp" />
<Content Include="Resources\stop.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,28 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class Breakpoint : Changeable<Breakpoint> {
// type code/data/kernel
// address+[end address]
// conditions? script?
// action (suspend, trace, etc)
public Breakpoint() {
this.self = this;
}
}
}

View File

@ -1,42 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class BreakpointList : Changeable<BreakpointList>, IReadOnlyCollection<Breakpoint> {
private readonly Debugger debugger;
private readonly List<Breakpoint> breakpoints = new List<Breakpoint>();
public BreakpointList(Debugger debugger) {
this.self = this;
this.debugger = debugger;
}
public int Count {
get {
return breakpoints.Count;
}
}
public IEnumerator<Breakpoint> GetEnumerator() {
return breakpoints.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator() {
return breakpoints.GetEnumerator();
}
}
}

View File

@ -1,28 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Xenia.Debug {
public class Callstack {
public class Frame {
// function
// address
// stack pointer
// possible to get args?
}
// thread
// frames
}
}

View File

@ -1,56 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public enum RunState {
Updating,
Running,
Paused,
}
public class Context : Changeable<Context> {
private readonly Debugger debugger;
public Context(Debugger debugger) {
this.self = this;
this.debugger = debugger;
}
public RunState RunState {
get; private set;
}
public void SetRunState(RunState runState) {
if (RunState == runState) {
return;
}
RunState = runState;
OnChanged();
}
public uint CurrentThreadId {
get; private set;
}
public void SetThreadId(uint threadId) {
if (CurrentThreadId == threadId) {
return;
}
CurrentThreadId = threadId;
OnChanged();
}
}
}

View File

@ -1,401 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using FlatBuffers;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using xe.debug.proto;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class Debugger {
private readonly static string kServerHostname = "";
private readonly static int kServerPort = 19000;
public enum State {
Idle,
Attaching,
Attached,
Detached,
}
private class PendingRequest {
public uint requestId;
public ByteBuffer byteBuffer;
public TaskCompletionSource<Response> responseTask;
}
private Socket socket;
private readonly ConcurrentDictionary<uint, PendingRequest>
pendingRequests = new ConcurrentDictionary<uint, PendingRequest>();
private uint nextRequestId = 1;
private FileMappingHandle memoryHandle;
private FileMappingHandle codeCacheHandle;
private IntPtr codeCachePtr;
public unsafe byte* TranslateVirtual(uint address) {
return (byte*)Memory.VirtualMembase.ToPointer() + address;
}
public unsafe byte* TranslatePhysical(uint address) {
return (byte*)Memory.PhysicalMembase.ToPointer() + 0xFFFFFFFF + address;
}
public event EventHandler<State> StateChanged;
public State CurrentState {
get; private set;
}
= State.Idle;
public readonly Context CurrentContext;
public readonly BreakpointList BreakpointList;
public readonly Memory Memory;
public readonly ModuleList ModuleList;
public readonly ThreadList ThreadList;
public Debugger(AsyncTaskRunner asyncTaskRunner) {
Dispatch.AsyncTaskRunner = asyncTaskRunner;
this.BreakpointList = new BreakpointList(this);
this.Memory = new Memory(this);
this.ModuleList = new ModuleList(this);
this.ThreadList = new ThreadList(this);
this.CurrentContext = new Context(this);
}
public Task Attach() {
return Attach(CancellationToken.None);
}
public async Task Attach(CancellationToken cancellationToken) {
System.Diagnostics.Debug.Assert(CurrentState == State.Idle);
SocketPermission permission = new SocketPermission(
NetworkAccess.Connect,
TransportType.Tcp,
kServerHostname,
kServerPort);
permission.Demand();
IPAddress ipAddress = new IPAddress(new byte[] { 127, 0, 0, 1 });
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, kServerPort);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
socket.Blocking = false;
socket.NoDelay = true;
socket.ReceiveBufferSize = 1024 * 1024;
socket.SendBufferSize = 1024 * 1024;
socket.ReceiveTimeout = 0;
socket.SendTimeout = 0;
OnStateChanged(State.Attaching);
while (true) {
Task task = Task.Factory.FromAsync(socket.BeginConnect, socket.EndConnect, ipEndPoint, null);
try {
await task.WithCancellation(cancellationToken);
} catch (OperationCanceledException) {
socket.Close();
socket = null;
OnStateChanged(State.Idle);
return;
} catch (SocketException e) {
if (e.SocketErrorCode == SocketError.ConnectionRefused) {
// Not found - emulator may still be starting.
System.Diagnostics.Debug.WriteLine("Connection refused; trying again...");
continue;
}
OnStateChanged(State.Idle);
return;
}
break;
}
// Start recv pump.
Dispatch.Issue(() => ReceivePump());
var fbb = BeginRequest();
AttachRequest.StartAttachRequest(fbb);
int requestDataOffset = AttachRequest.EndAttachRequest(fbb);
var response = await CommitRequest(fbb, RequestData.AttachRequest, requestDataOffset);
System.Diagnostics.Debug.Assert(response.ResponseDataType ==
ResponseData.AttachResponse);
var attachResponse = new AttachResponse();
response.GetResponseData(attachResponse);
// Open mmap to share memory.
memoryHandle = FileMapping.OpenFileMapping(
FileMapAccess.FILE_MAP_ALL_ACCESS, false, attachResponse.MemoryFile);
if (memoryHandle.IsInvalid) {
System.Diagnostics.Debug.Fail("Unable to open target memory");
Detach();
return;
}
// Open mmap to code cache.
codeCacheHandle =
FileMapping.OpenFileMapping(FileMapAccess.FILE_MAP_ALL_ACCESS, false,
attachResponse.CodeCacheFile);
if (codeCacheHandle.IsInvalid) {
System.Diagnostics.Debug.Fail("Unable to open target code cache");
Detach();
return;
}
codeCachePtr = FileMapping.MapViewOfFileEx(
codeCacheHandle, FileMapAccess.FILE_MAP_ALL_ACCESS, 0, 0,
attachResponse.CodeCacheSize, attachResponse.CodeCacheBase);
// Setup the memory system. This maps the emulator memory into our address
// space.
if (!Memory.InitializeMapping(memoryHandle)) {
Detach();
return;
}
OnStateChanged(State.Attached);
}
public void Detach() {
if (CurrentState == State.Idle || CurrentState == State.Detached) {
return;
}
Memory.UninitializeMapping();
if (codeCacheHandle != null) {
FileMapping.UnmapViewOfFile(codeCachePtr);
codeCacheHandle.Close();
codeCacheHandle = null;
}
if (memoryHandle != null) {
memoryHandle.Close();
memoryHandle = null;
}
if (socket != null) {
socket.Close();
socket = null;
}
OnStateChanged(State.Detached);
}
private async void ReceivePump() {
// Read length.
var lengthBuffer = new byte[4];
int receiveLength;
try {
receiveLength = await Task.Factory.FromAsync(
(callback, state) => socket.BeginReceive(lengthBuffer, 0, lengthBuffer.Length,
SocketFlags.None, callback, state),
asyncResult => socket.EndReceive(asyncResult), null);
} catch (SocketException) {
System.Diagnostics.Debug.WriteLine("Socket read error; detaching");
Detach();
return;
}
if (receiveLength == 0 || receiveLength != 4) {
// Failed?
ReceivePump();
return;
}
var length = BitConverter.ToInt32(lengthBuffer, 0);
// Read body.
var bodyBuffer = new byte[length];
int bodyOffset = 0;
while (bodyOffset != bodyBuffer.Length) {
receiveLength = await Task.Factory.FromAsync(
(callback, state) => socket.BeginReceive(
bodyBuffer, bodyOffset, bodyBuffer.Length - bodyOffset,
SocketFlags.None, callback, state),
asyncResult => socket.EndReceive(asyncResult), null);
if (receiveLength == 0) {
// Failed?
ReceivePump();
return;
}
bodyOffset += receiveLength;
}
// Emit message.
OnMessageReceived(bodyBuffer);
// Continue pumping.
Dispatch.Issue(() => ReceivePump());
}
private void OnMessageReceived(byte[] buffer) {
ByteBuffer byteBuffer = new ByteBuffer(buffer);
var response = Response.GetRootAsResponse(byteBuffer);
if (response.Id != 0) {
// Response.
PendingRequest pendingRequest;
if (!pendingRequests.TryRemove(response.Id, out pendingRequest)) {
System.Diagnostics.Debug.WriteLine("Unexpected message from debug server?");
return;
}
pendingRequest.byteBuffer = byteBuffer;
pendingRequest.responseTask.SetResult(response);
} else {
// Event.
// TODO(benvanik): events.
}
}
public FlatBufferBuilder BeginRequest() {
var fbb = new FlatBufferBuilder(32 * 1024);
return fbb;
}
public async Task<Response> CommitRequest(FlatBufferBuilder fbb,
RequestData requestDataType,
int requestDataOffset) {
PendingRequest request = new PendingRequest();
request.requestId = nextRequestId++;
request.responseTask = new TaskCompletionSource<Response>();
pendingRequests.TryAdd(request.requestId, request);
int requestOffset =
Request.CreateRequest(fbb, request.requestId,
requestDataType, requestDataOffset);
fbb.Finish(requestOffset);
// Update the placeholder size.
int bufferOffset = fbb.DataBuffer.Position;
int bufferLength = fbb.DataBuffer.Length - fbb.DataBuffer.Position;
fbb.DataBuffer.PutInt(bufferOffset - 4, bufferLength);
// Send request.
await socket.SendTaskAsync(fbb.DataBuffer.Data, bufferOffset - 4,
bufferLength + 4, SocketFlags.None);
// Await response.
var response = await request.responseTask.Task;
return response;
}
private void OnStateChanged(State newState) {
if (newState == CurrentState) {
return;
}
CurrentState = newState;
if (StateChanged != null) {
StateChanged(this, newState);
}
}
private async Task BeginRunStateTransition() {
CurrentContext.SetRunState(RunState.Updating);
await Task.FromResult<int>(0);
}
private async Task CompleteRunStateTransition(RunState newRunState) {
await Task.WhenAll(new Task[] {
ModuleList.Invalidate(),
ThreadList.Invalidate(),
});
CurrentContext.SetRunState(newRunState);
}
public async Task<StopResponse> Stop() {
await BeginRunStateTransition();
var fbb = BeginRequest();
StopRequest.StartStopRequest(fbb);
int requestDataOffset = StopRequest.EndStopRequest(fbb);
var response = await CommitRequest(fbb, RequestData.StopRequest, requestDataOffset);
System.Diagnostics.Debug.Assert(response.ResponseDataType ==
ResponseData.StopResponse);
var stopResponse = new StopResponse();
response.GetResponseData(stopResponse);
await CompleteRunStateTransition(RunState.Paused);
return stopResponse;
}
public async Task<BreakResponse> Break() {
await BeginRunStateTransition();
var fbb = BeginRequest();
BreakRequest.StartBreakRequest(fbb);
int requestDataOffset = BreakRequest.EndBreakRequest(fbb);
var response = await CommitRequest(fbb, RequestData.BreakRequest, requestDataOffset);
System.Diagnostics.Debug.Assert(response.ResponseDataType ==
ResponseData.BreakResponse);
var breakResponse = new BreakResponse();
response.GetResponseData(breakResponse);
await CompleteRunStateTransition(RunState.Paused);
return breakResponse;
}
public async Task<ContinueResponse> Continue() {
await BeginRunStateTransition();
var fbb = BeginRequest();
int requestDataOffset = ContinueRequest.CreateContinueRequest(fbb, ContinueAction.Continue, 0);
var response = await CommitRequest(fbb, RequestData.ContinueRequest, requestDataOffset);
System.Diagnostics.Debug.Assert(response.ResponseDataType ==
ResponseData.ContinueResponse);
var continueResponse = new ContinueResponse();
response.GetResponseData(continueResponse);
await CompleteRunStateTransition(RunState.Running);
return continueResponse;
}
public async Task<ContinueResponse> ContinueTo(uint targetAddress) {
await BeginRunStateTransition();
var fbb = BeginRequest();
int requestDataOffset = ContinueRequest.CreateContinueRequest(fbb, ContinueAction.ContinueTo, targetAddress);
var response = await CommitRequest(fbb, RequestData.ContinueRequest, requestDataOffset);
System.Diagnostics.Debug.Assert(response.ResponseDataType ==
ResponseData.ContinueResponse);
var continueResponse = new ContinueResponse();
response.GetResponseData(continueResponse);
await CompleteRunStateTransition(RunState.Running);
return continueResponse;
}
public async Task<StepResponse> StepIn() {
return await Step(StepAction.StepIn, CurrentContext.CurrentThreadId);
}
public async Task<StepResponse> StepOver() {
return await Step(StepAction.StepOver, CurrentContext.CurrentThreadId);
}
public async Task<StepResponse> StepOut() {
return await Step(StepAction.StepOut, CurrentContext.CurrentThreadId);
}
private async Task<StepResponse> Step(StepAction stepAction, uint threadId) {
await BeginRunStateTransition();
var fbb = BeginRequest();
int requestDataOffset = StepRequest.CreateStepRequest(fbb, stepAction, threadId);
var response = await CommitRequest(fbb, RequestData.StepRequest, requestDataOffset);
System.Diagnostics.Debug.Assert(response.ResponseDataType ==
ResponseData.StepResponse);
var stepResponse = new StepResponse();
response.GetResponseData(stepResponse);
await CompleteRunStateTransition(RunState.Paused);
return stepResponse;
}
}
}

View File

@ -1,153 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using xe.debug.proto;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class Function : Changeable<Function> {
private static Native.Disassembler disassembler = new Native.Disassembler();
// status: declared, defined, failed
// behavior: default, prolog, epilog, epilog_return, extern
// extern info?
public readonly Debugger Debugger;
public readonly Module Module;
public readonly ulong Identifier;
public readonly uint AddressStart;
public uint AddressEnd {
get; private set;
}
public uint MachineCodeStart {
get; private set;
}
public uint MachineCodeEnd {
get; private set;
}
// source map
// disasm:
// source
// raw hir
// hir
// machine code
// trace data:
// intptr into file mapping
// function_thread_use bitmask
// call count
// caller history
// instruction execution counts
private string disasmPpc;
public unsafe string DisasmPpc {
get {
if (disasmPpc != null) {
return disasmPpc;
}
if (AddressEnd == 0) {
return "(unavailable)";
}
disasmPpc = disassembler.DisassemblePPC(
new IntPtr(Debugger.TranslateVirtual(AddressStart)),
AddressEnd - AddressStart + 4);
return disasmPpc;
}
}
public string DisasmHirUnoptimized {
get; private set;
}
public string DisasmHirOptimized {
get; private set;
}
private string disasmMachineCode;
public string DisasmMachineCode {
get {
if (disasmMachineCode != null) {
return disasmMachineCode;
}
if (MachineCodeStart == 0) {
return null;
}
disasmMachineCode = disassembler.DisassembleX64(
new IntPtr(MachineCodeStart), MachineCodeEnd - MachineCodeStart + 1);
disasmMachineCode = disasmMachineCode.Replace("\n", "\r\n");
return disasmMachineCode;
}
}
public Function(Debugger debugger, Module module, xe.debug.proto.FunctionEntry functionEntry) {
this.self = this;
this.Debugger = debugger;
this.Module = module;
Identifier = functionEntry.Identifier;
AddressStart = functionEntry.AddressStart;
AddressEnd = functionEntry.AddressEnd;
Name = functionEntry.Name;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value;
if (value == null) {
name = "sub_" + AddressStart.ToString("X8");
}
LowerName = name.ToLowerInvariant();
}
}
public string LowerName {
get; set;
}
public override string ToString() {
return Name;
}
public async Task Invalidate() {
var fbb = Debugger.BeginRequest();
int requestDataOffset = GetFunctionRequest.CreateGetFunctionRequest(fbb, Identifier);
var response = await Debugger.CommitRequest(
fbb, RequestData.GetFunctionRequest, requestDataOffset);
var responseData = new GetFunctionResponse();
response.GetResponseData(responseData);
var functionData = responseData.Function;
this.AddressEnd = functionData.AddressEnd;
this.MachineCodeStart = functionData.MachineCodeStart;
this.MachineCodeEnd = functionData.MachineCodeEnd;
this.DisasmHirUnoptimized = functionData.DisasmHirRaw;
this.DisasmHirOptimized = functionData.DisasmHirOpt;
if (DisasmHirUnoptimized != null) {
DisasmHirUnoptimized = DisasmHirUnoptimized.Replace("\n", "\r\n");
}
if (DisasmHirOptimized != null) {
DisasmHirOptimized = DisasmHirOptimized.Replace("\n", "\r\n");
}
OnChanged();
}
}
}

View File

@ -1,28 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class KernelObject : Changeable<KernelObject> {
public readonly Debugger Debugger;
public readonly uint Handle;
public KernelObject(Debugger debugger, uint handle) {
this.self = this;
this.Debugger = debugger;
this.Handle = handle;
}
}
}

View File

@ -1,115 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class Memory : Changeable<Memory>, IDisposable {
private readonly Debugger debugger;
private class MapInfo {
public ulong virtualAddressStart;
public ulong virtualAddressEnd;
public ulong targetAddress;
public IntPtr ptr;
}
private MapInfo[] mapInfos = new MapInfo[]{
// From memory.cc:
new MapInfo(){virtualAddressStart = 0x00000000, virtualAddressEnd = 0x3FFFFFFF,
targetAddress = 0x0000000000000000},
new MapInfo(){virtualAddressStart = 0x40000000, virtualAddressEnd = 0x7EFFFFFF,
targetAddress = 0x0000000040000000},
new MapInfo(){virtualAddressStart = 0x7F000000, virtualAddressEnd = 0x7FFFFFFF,
targetAddress = 0x0000000100000000},
new MapInfo(){virtualAddressStart = 0x80000000, virtualAddressEnd = 0x8FFFFFFF,
targetAddress = 0x0000000080000000},
new MapInfo(){virtualAddressStart = 0x90000000, virtualAddressEnd = 0x9FFFFFFF,
targetAddress = 0x0000000080000000},
new MapInfo(){virtualAddressStart = 0xA0000000, virtualAddressEnd = 0xBFFFFFFF,
targetAddress = 0x0000000100000000},
new MapInfo(){virtualAddressStart = 0xC0000000, virtualAddressEnd = 0xDFFFFFFF,
targetAddress = 0x0000000100000000},
new MapInfo(){virtualAddressStart = 0xE0000000, virtualAddressEnd = 0xFFFFFFFF,
targetAddress = 0x0000000100000000},
new MapInfo(){virtualAddressStart = 0x100000000, virtualAddressEnd = 0x11FFFFFFF,
targetAddress = 0x0000000100000000},
};
public UIntPtr VirtualMembase;
public UIntPtr PhysicalMembase;
public Memory(Debugger debugger) {
this.self = this;
this.debugger = debugger;
}
public bool InitializeMapping(FileMappingHandle mappingHandle) {
ulong mappingBase = 0x100000000;
foreach (MapInfo mapInfo in mapInfos) {
uint targetAddressLow = (uint)mapInfo.targetAddress;
uint targetAddressHigh = (uint)(mapInfo.targetAddress >> 32);
mapInfo.ptr = FileMapping.MapViewOfFileEx(
mappingHandle, FileMapAccess.FILE_MAP_ALL_ACCESS,
targetAddressHigh, targetAddressLow,
mapInfo.virtualAddressEnd - mapInfo.virtualAddressStart + 1,
mappingBase + mapInfo.virtualAddressStart);
if (mapInfo.ptr == IntPtr.Zero) {
System.Diagnostics.Debug.Fail("Unable to place memory at target address");
return false;
}
}
VirtualMembase = new UIntPtr(mappingBase);
PhysicalMembase = new UIntPtr(mappingBase + 0x100000000);
return true;
}
public void UninitializeMapping() {
foreach (MapInfo mapInfo in mapInfos) {
FileMapping.UnmapViewOfFile(mapInfo.ptr);
mapInfo.ptr = IntPtr.Zero;
}
}
private void OnDispose() {
UninitializeMapping();
}
public MemoryView CreateView() {
return new MemoryView(this);
}
#region Dispose
private bool disposed = false;
~Memory() {
Dispose(false);
}
public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing) {
if (!disposed) {
if (disposing) {
// TODO: dispose managed state (managed objects).
}
OnDispose();
disposed = true;
}
}
#endregion
}
}

View File

@ -1,38 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class MemoryView : Changeable<MemoryView> {
private readonly Memory memory;
public MemoryView(Memory memory) {
this.self = this;
this.memory = memory;
}
// startAddress
// endAddress
// padding: 2 64k pages on each side?
// history (last N snapshots)
// snapshot on break, or manually
// colored: text on modification
// bg on heap alloc #
// focus details: protection, region, allocation
// stacks for all allocations
}
}

View File

@ -1,126 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using xe.debug.proto;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class Module : KernelObject, IReadOnlyCollection<Function> {
private bool hasFetched = false;
private uint functionCount = 0;
private readonly List<Function> functions = new List<Function>();
public Module(Debugger debugger, uint moduleHandle) : base(debugger, moduleHandle) {
}
public async Task Invalidate(uint newFunctionCount) {
if (hasFetched && newFunctionCount == functionCount) {
// No-op.
return;
}
var pendingTasks = new List<Task>();
if (!hasFetched) {
pendingTasks.Add(InvalidateModule());
hasFetched = true;
}
if (newFunctionCount != functionCount) {
uint functionIndexStart = functionCount;
uint functionIndexEnd = newFunctionCount - 1;
functionCount = newFunctionCount;
pendingTasks.Add(InvalidateFunctions(functionIndexStart, functionIndexEnd));
}
await Task.WhenAll(pendingTasks);
OnChanged();
}
private async Task InvalidateModule() {
var fbb = Debugger.BeginRequest();
int requestDataOffset = GetModuleRequest.CreateGetModuleRequest(fbb, Handle);
var response = await Debugger.CommitRequest(
fbb, RequestData.GetModuleRequest, requestDataOffset);
var responseData = new GetModuleResponse();
response.GetResponseData(responseData);
ModuleType = responseData.Module.Type;
Name = responseData.Module.Name;
Path = responseData.Module.Path;
}
private async Task InvalidateFunctions(uint functionIndexStart, uint functionIndexEnd) {
var fbb = Debugger.BeginRequest();
int requestDataOffset = ListFunctionsRequest.CreateListFunctionsRequest(
fbb, Handle, functionIndexStart, functionIndexEnd);
var response = await Debugger.CommitRequest(
fbb, RequestData.ListFunctionsRequest, requestDataOffset);
var responseData = new ListFunctionsResponse();
response.GetResponseData(responseData);
var functionEntry = new xe.debug.proto.FunctionEntry();
for (int i = 0; i < responseData.EntryLength; ++i) {
responseData.GetEntry(functionEntry, i);
var function = new Function(Debugger, this, functionEntry);
functions.Add(function);
}
functions.Sort((Function a, Function b) => {
return (int)((long)a.AddressStart - (long)b.AddressStart);
});
}
public ModuleType ModuleType {
get;
private set;
}
public string Name {
get;
private set;
}
public string Path {
get;
private set;
}
public override string ToString() {
return ToShortString();
}
public string ToShortString() {
return string.Format("[{0:X4}] {1}", Handle, Name);
}
public int Count {
get {
return functions.Count;
}
}
public IEnumerator<Function> GetEnumerator() {
return functions.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator() {
return functions.GetEnumerator();
}
}
}

View File

@ -1,72 +0,0 @@
/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2015 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using xe.debug.proto;
using Xenia.Debug.Utilities;
namespace Xenia.Debug {
public class ModuleList : Changeable<ModuleList>, IReadOnlyCollection<Module> {
private readonly Debugger debugger;
private readonly List<Module> modules = new List<Module>();
public ModuleList(Debugger debugger) {
this.self = this;
this.debugger = debugger;
}
public async Task Invalidate() {
var fbb = debugger.BeginRequest();
ListModulesRequest.StartListModulesRequest(fbb);
int requestDataOffset = ListModulesRequest.EndListModulesRequest(fbb);
var response = await debugger.CommitRequest(
fbb, RequestData.ListModulesRequest, requestDataOffset);
ListModulesResponse responseData = new ListModulesResponse();
response.GetResponseData(responseData);
var pendingTasks = new List<Task>();
for (int i = 0; i < responseData.EntryLength; ++i) {
var moduleEntry = responseData.GetEntry(i);
var module = modules.Find((m) => m.Handle == moduleEntry.Handle);
if (module == null) {
// Module not found.
module = new Module(debugger, moduleEntry.Handle);
pendingTasks.Add(module.Invalidate(moduleEntry.FunctionCount));
modules.Add(module);
} else {
// Module already present.
pendingTasks.Add(module.Invalidate(moduleEntry.FunctionCount));
}
}
await Task.WhenAll(pendingTasks);
OnChanged();
}
public int Count {
get {
return modules.Count;
}
}
public IEnumerator<Module> GetEnumerator() {
return modules.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator() {
return modules.GetEnumerator();
}
}
}

View File

@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Xenia.Debug")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Xenia.Debug")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("58348c66-1b0d-497c-b51a-28e99df1ef74")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,35 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class AccessViolationEvent : Table {
public static AccessViolationEvent GetRootAsAccessViolationEvent(ByteBuffer _bb) { return GetRootAsAccessViolationEvent(_bb, new AccessViolationEvent()); }
public static AccessViolationEvent GetRootAsAccessViolationEvent(ByteBuffer _bb, AccessViolationEvent obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public AccessViolationEvent __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public uint ThreadId { get { int o = __offset(4); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint TargetAddress { get { int o = __offset(6); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public static int CreateAccessViolationEvent(FlatBufferBuilder builder,
uint thread_id = 0,
uint target_address = 0) {
builder.StartObject(2);
AccessViolationEvent.AddTargetAddress(builder, target_address);
AccessViolationEvent.AddThreadId(builder, thread_id);
return AccessViolationEvent.EndAccessViolationEvent(builder);
}
public static void StartAccessViolationEvent(FlatBufferBuilder builder) { builder.StartObject(2); }
public static void AddThreadId(FlatBufferBuilder builder, uint threadId) { builder.AddUint(0, threadId, 0); }
public static void AddTargetAddress(FlatBufferBuilder builder, uint targetAddress) { builder.AddUint(1, targetAddress, 0); }
public static int EndAccessViolationEvent(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,34 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class AddBreakpointsRequest : Table {
public static AddBreakpointsRequest GetRootAsAddBreakpointsRequest(ByteBuffer _bb) { return GetRootAsAddBreakpointsRequest(_bb, new AddBreakpointsRequest()); }
public static AddBreakpointsRequest GetRootAsAddBreakpointsRequest(ByteBuffer _bb, AddBreakpointsRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public AddBreakpointsRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public Breakpoint GetBreakpoints(int j) { return GetBreakpoints(new Breakpoint(), j); }
public Breakpoint GetBreakpoints(Breakpoint obj, int j) { int o = __offset(4); return o != 0 ? obj.__init(__vector(o) + j * 4, bb) : null; }
public int BreakpointsLength { get { int o = __offset(4); return o != 0 ? __vector_len(o) : 0; } }
public static int CreateAddBreakpointsRequest(FlatBufferBuilder builder,
int breakpoints = 0) {
builder.StartObject(1);
AddBreakpointsRequest.AddBreakpoints(builder, breakpoints);
return AddBreakpointsRequest.EndAddBreakpointsRequest(builder);
}
public static void StartAddBreakpointsRequest(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddBreakpoints(FlatBufferBuilder builder, int breakpointsOffset) { builder.AddOffset(0, breakpointsOffset, 0); }
public static void StartBreakpointsVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
public static int EndAddBreakpointsRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class AddBreakpointsResponse : Table {
public static AddBreakpointsResponse GetRootAsAddBreakpointsResponse(ByteBuffer _bb) { return GetRootAsAddBreakpointsResponse(_bb, new AddBreakpointsResponse()); }
public static AddBreakpointsResponse GetRootAsAddBreakpointsResponse(ByteBuffer _bb, AddBreakpointsResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public AddBreakpointsResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartAddBreakpointsResponse(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndAddBreakpointsResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class AttachRequest : Table {
public static AttachRequest GetRootAsAttachRequest(ByteBuffer _bb) { return GetRootAsAttachRequest(_bb, new AttachRequest()); }
public static AttachRequest GetRootAsAttachRequest(ByteBuffer _bb, AttachRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public AttachRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartAttachRequest(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndAttachRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,51 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class AttachResponse : Table {
public static AttachResponse GetRootAsAttachResponse(ByteBuffer _bb) { return GetRootAsAttachResponse(_bb, new AttachResponse()); }
public static AttachResponse GetRootAsAttachResponse(ByteBuffer _bb, AttachResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public AttachResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public string MemoryFile { get { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } }
public string CodeCacheFile { get { int o = __offset(6); return o != 0 ? __string(o + bb_pos) : null; } }
public uint CodeCacheBase { get { int o = __offset(8); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint CodeCacheSize { get { int o = __offset(10); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public string FunctionsFile { get { int o = __offset(12); return o != 0 ? __string(o + bb_pos) : null; } }
public string FunctionsTraceFile { get { int o = __offset(14); return o != 0 ? __string(o + bb_pos) : null; } }
public static int CreateAttachResponse(FlatBufferBuilder builder,
int memory_file = 0,
int code_cache_file = 0,
uint code_cache_base = 0,
uint code_cache_size = 0,
int functions_file = 0,
int functions_trace_file = 0) {
builder.StartObject(6);
AttachResponse.AddFunctionsTraceFile(builder, functions_trace_file);
AttachResponse.AddFunctionsFile(builder, functions_file);
AttachResponse.AddCodeCacheSize(builder, code_cache_size);
AttachResponse.AddCodeCacheBase(builder, code_cache_base);
AttachResponse.AddCodeCacheFile(builder, code_cache_file);
AttachResponse.AddMemoryFile(builder, memory_file);
return AttachResponse.EndAttachResponse(builder);
}
public static void StartAttachResponse(FlatBufferBuilder builder) { builder.StartObject(6); }
public static void AddMemoryFile(FlatBufferBuilder builder, int memoryFileOffset) { builder.AddOffset(0, memoryFileOffset, 0); }
public static void AddCodeCacheFile(FlatBufferBuilder builder, int codeCacheFileOffset) { builder.AddOffset(1, codeCacheFileOffset, 0); }
public static void AddCodeCacheBase(FlatBufferBuilder builder, uint codeCacheBase) { builder.AddUint(2, codeCacheBase, 0); }
public static void AddCodeCacheSize(FlatBufferBuilder builder, uint codeCacheSize) { builder.AddUint(3, codeCacheSize, 0); }
public static void AddFunctionsFile(FlatBufferBuilder builder, int functionsFileOffset) { builder.AddOffset(4, functionsFileOffset, 0); }
public static void AddFunctionsTraceFile(FlatBufferBuilder builder, int functionsTraceFileOffset) { builder.AddOffset(5, functionsTraceFileOffset, 0); }
public static int EndAttachResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class BreakRequest : Table {
public static BreakRequest GetRootAsBreakRequest(ByteBuffer _bb) { return GetRootAsBreakRequest(_bb, new BreakRequest()); }
public static BreakRequest GetRootAsBreakRequest(ByteBuffer _bb, BreakRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public BreakRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartBreakRequest(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndBreakRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class BreakResponse : Table {
public static BreakResponse GetRootAsBreakResponse(ByteBuffer _bb) { return GetRootAsBreakResponse(_bb, new BreakResponse()); }
public static BreakResponse GetRootAsBreakResponse(ByteBuffer _bb, BreakResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public BreakResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartBreakResponse(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndBreakResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,21 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class Breakpoint : Struct {
public Breakpoint __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public uint BreakpointId { get { return bb.GetUint(bb_pos + 0); } }
public static int CreateBreakpoint(FlatBufferBuilder builder, uint BreakpointId) {
builder.Prep(4, 4);
builder.PutUint(BreakpointId);
return builder.Offset;
}
};
}

View File

@ -1,35 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class BreakpointEvent : Table {
public static BreakpointEvent GetRootAsBreakpointEvent(ByteBuffer _bb) { return GetRootAsBreakpointEvent(_bb, new BreakpointEvent()); }
public static BreakpointEvent GetRootAsBreakpointEvent(ByteBuffer _bb, BreakpointEvent obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public BreakpointEvent __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public uint ThreadId { get { int o = __offset(4); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint BreakpointId { get { int o = __offset(6); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public static int CreateBreakpointEvent(FlatBufferBuilder builder,
uint thread_id = 0,
uint breakpoint_id = 0) {
builder.StartObject(2);
BreakpointEvent.AddBreakpointId(builder, breakpoint_id);
BreakpointEvent.AddThreadId(builder, thread_id);
return BreakpointEvent.EndBreakpointEvent(builder);
}
public static void StartBreakpointEvent(FlatBufferBuilder builder) { builder.StartObject(2); }
public static void AddThreadId(FlatBufferBuilder builder, uint threadId) { builder.AddUint(0, threadId, 0); }
public static void AddBreakpointId(FlatBufferBuilder builder, uint breakpointId) { builder.AddUint(1, breakpointId, 0); }
public static int EndBreakpointEvent(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,13 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
public enum ContinueAction : sbyte
{
Continue = 0,
ContinueTo = 1,
};
}

View File

@ -1,35 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ContinueRequest : Table {
public static ContinueRequest GetRootAsContinueRequest(ByteBuffer _bb) { return GetRootAsContinueRequest(_bb, new ContinueRequest()); }
public static ContinueRequest GetRootAsContinueRequest(ByteBuffer _bb, ContinueRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ContinueRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public ContinueAction Action { get { int o = __offset(4); return o != 0 ? (ContinueAction)bb.GetSbyte(o + bb_pos) : (ContinueAction)0; } }
public uint TargetAddress { get { int o = __offset(6); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public static int CreateContinueRequest(FlatBufferBuilder builder,
ContinueAction action = 0,
uint target_address = 0) {
builder.StartObject(2);
ContinueRequest.AddTargetAddress(builder, target_address);
ContinueRequest.AddAction(builder, action);
return ContinueRequest.EndContinueRequest(builder);
}
public static void StartContinueRequest(FlatBufferBuilder builder) { builder.StartObject(2); }
public static void AddAction(FlatBufferBuilder builder, ContinueAction action) { builder.AddSbyte(0, (sbyte)(action), 0); }
public static void AddTargetAddress(FlatBufferBuilder builder, uint targetAddress) { builder.AddUint(1, targetAddress, 0); }
public static int EndContinueRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ContinueResponse : Table {
public static ContinueResponse GetRootAsContinueResponse(ByteBuffer _bb) { return GetRootAsContinueResponse(_bb, new ContinueResponse()); }
public static ContinueResponse GetRootAsContinueResponse(ByteBuffer _bb, ContinueResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ContinueResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartContinueResponse(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndContinueResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,59 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class Function : Table {
public static Function GetRootAsFunction(ByteBuffer _bb) { return GetRootAsFunction(_bb, new Function()); }
public static Function GetRootAsFunction(ByteBuffer _bb, Function obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public Function __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public ulong Identifier { get { int o = __offset(4); return o != 0 ? bb.GetUlong(o + bb_pos) : (ulong)0; } }
public uint AddressStart { get { int o = __offset(6); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint AddressEnd { get { int o = __offset(8); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public string Name { get { int o = __offset(10); return o != 0 ? __string(o + bb_pos) : null; } }
public uint MachineCodeStart { get { int o = __offset(12); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint MachineCodeEnd { get { int o = __offset(14); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public string DisasmHirRaw { get { int o = __offset(16); return o != 0 ? __string(o + bb_pos) : null; } }
public string DisasmHirOpt { get { int o = __offset(18); return o != 0 ? __string(o + bb_pos) : null; } }
public static int CreateFunction(FlatBufferBuilder builder,
ulong identifier = 0,
uint address_start = 0,
uint address_end = 0,
int name = 0,
uint machine_code_start = 0,
uint machine_code_end = 0,
int disasm_hir_raw = 0,
int disasm_hir_opt = 0) {
builder.StartObject(8);
Function.AddIdentifier(builder, identifier);
Function.AddDisasmHirOpt(builder, disasm_hir_opt);
Function.AddDisasmHirRaw(builder, disasm_hir_raw);
Function.AddMachineCodeEnd(builder, machine_code_end);
Function.AddMachineCodeStart(builder, machine_code_start);
Function.AddName(builder, name);
Function.AddAddressEnd(builder, address_end);
Function.AddAddressStart(builder, address_start);
return Function.EndFunction(builder);
}
public static void StartFunction(FlatBufferBuilder builder) { builder.StartObject(8); }
public static void AddIdentifier(FlatBufferBuilder builder, ulong identifier) { builder.AddUlong(0, identifier, 0); }
public static void AddAddressStart(FlatBufferBuilder builder, uint addressStart) { builder.AddUint(1, addressStart, 0); }
public static void AddAddressEnd(FlatBufferBuilder builder, uint addressEnd) { builder.AddUint(2, addressEnd, 0); }
public static void AddName(FlatBufferBuilder builder, int nameOffset) { builder.AddOffset(3, nameOffset, 0); }
public static void AddMachineCodeStart(FlatBufferBuilder builder, uint machineCodeStart) { builder.AddUint(4, machineCodeStart, 0); }
public static void AddMachineCodeEnd(FlatBufferBuilder builder, uint machineCodeEnd) { builder.AddUint(5, machineCodeEnd, 0); }
public static void AddDisasmHirRaw(FlatBufferBuilder builder, int disasmHirRawOffset) { builder.AddOffset(6, disasmHirRawOffset, 0); }
public static void AddDisasmHirOpt(FlatBufferBuilder builder, int disasmHirOptOffset) { builder.AddOffset(7, disasmHirOptOffset, 0); }
public static int EndFunction(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,43 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class FunctionEntry : Table {
public static FunctionEntry GetRootAsFunctionEntry(ByteBuffer _bb) { return GetRootAsFunctionEntry(_bb, new FunctionEntry()); }
public static FunctionEntry GetRootAsFunctionEntry(ByteBuffer _bb, FunctionEntry obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public FunctionEntry __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public ulong Identifier { get { int o = __offset(4); return o != 0 ? bb.GetUlong(o + bb_pos) : (ulong)0; } }
public uint AddressStart { get { int o = __offset(6); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint AddressEnd { get { int o = __offset(8); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public string Name { get { int o = __offset(10); return o != 0 ? __string(o + bb_pos) : null; } }
public static int CreateFunctionEntry(FlatBufferBuilder builder,
ulong identifier = 0,
uint address_start = 0,
uint address_end = 0,
int name = 0) {
builder.StartObject(4);
FunctionEntry.AddIdentifier(builder, identifier);
FunctionEntry.AddName(builder, name);
FunctionEntry.AddAddressEnd(builder, address_end);
FunctionEntry.AddAddressStart(builder, address_start);
return FunctionEntry.EndFunctionEntry(builder);
}
public static void StartFunctionEntry(FlatBufferBuilder builder) { builder.StartObject(4); }
public static void AddIdentifier(FlatBufferBuilder builder, ulong identifier) { builder.AddUlong(0, identifier, 0); }
public static void AddAddressStart(FlatBufferBuilder builder, uint addressStart) { builder.AddUint(1, addressStart, 0); }
public static void AddAddressEnd(FlatBufferBuilder builder, uint addressEnd) { builder.AddUint(2, addressEnd, 0); }
public static void AddName(FlatBufferBuilder builder, int nameOffset) { builder.AddOffset(3, nameOffset, 0); }
public static int EndFunctionEntry(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,31 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class GetFunctionRequest : Table {
public static GetFunctionRequest GetRootAsGetFunctionRequest(ByteBuffer _bb) { return GetRootAsGetFunctionRequest(_bb, new GetFunctionRequest()); }
public static GetFunctionRequest GetRootAsGetFunctionRequest(ByteBuffer _bb, GetFunctionRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public GetFunctionRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public ulong Identifier { get { int o = __offset(4); return o != 0 ? bb.GetUlong(o + bb_pos) : (ulong)0; } }
public static int CreateGetFunctionRequest(FlatBufferBuilder builder,
ulong identifier = 0) {
builder.StartObject(1);
GetFunctionRequest.AddIdentifier(builder, identifier);
return GetFunctionRequest.EndGetFunctionRequest(builder);
}
public static void StartGetFunctionRequest(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddIdentifier(FlatBufferBuilder builder, ulong identifier) { builder.AddUlong(0, identifier, 0); }
public static int EndGetFunctionRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,32 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class GetFunctionResponse : Table {
public static GetFunctionResponse GetRootAsGetFunctionResponse(ByteBuffer _bb) { return GetRootAsGetFunctionResponse(_bb, new GetFunctionResponse()); }
public static GetFunctionResponse GetRootAsGetFunctionResponse(ByteBuffer _bb, GetFunctionResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public GetFunctionResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public Function Function { get { return GetFunction(new Function()); } }
public Function GetFunction(Function obj) { int o = __offset(4); return o != 0 ? obj.__init(__indirect(o + bb_pos), bb) : null; }
public static int CreateGetFunctionResponse(FlatBufferBuilder builder,
int function = 0) {
builder.StartObject(1);
GetFunctionResponse.AddFunction(builder, function);
return GetFunctionResponse.EndGetFunctionResponse(builder);
}
public static void StartGetFunctionResponse(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddFunction(FlatBufferBuilder builder, int functionOffset) { builder.AddOffset(0, functionOffset, 0); }
public static int EndGetFunctionResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,31 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class GetModuleRequest : Table {
public static GetModuleRequest GetRootAsGetModuleRequest(ByteBuffer _bb) { return GetRootAsGetModuleRequest(_bb, new GetModuleRequest()); }
public static GetModuleRequest GetRootAsGetModuleRequest(ByteBuffer _bb, GetModuleRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public GetModuleRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public uint ModuleId { get { int o = __offset(4); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public static int CreateGetModuleRequest(FlatBufferBuilder builder,
uint module_id = 0) {
builder.StartObject(1);
GetModuleRequest.AddModuleId(builder, module_id);
return GetModuleRequest.EndGetModuleRequest(builder);
}
public static void StartGetModuleRequest(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddModuleId(FlatBufferBuilder builder, uint moduleId) { builder.AddUint(0, moduleId, 0); }
public static int EndGetModuleRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,32 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class GetModuleResponse : Table {
public static GetModuleResponse GetRootAsGetModuleResponse(ByteBuffer _bb) { return GetRootAsGetModuleResponse(_bb, new GetModuleResponse()); }
public static GetModuleResponse GetRootAsGetModuleResponse(ByteBuffer _bb, GetModuleResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public GetModuleResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public Module Module { get { return GetModule(new Module()); } }
public Module GetModule(Module obj) { int o = __offset(4); return o != 0 ? obj.__init(__indirect(o + bb_pos), bb) : null; }
public static int CreateGetModuleResponse(FlatBufferBuilder builder,
int module = 0) {
builder.StartObject(1);
GetModuleResponse.AddModule(builder, module);
return GetModuleResponse.EndGetModuleResponse(builder);
}
public static void StartGetModuleResponse(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddModule(FlatBufferBuilder builder, int moduleOffset) { builder.AddOffset(0, moduleOffset, 0); }
public static int EndGetModuleResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListBreakpointsRequest : Table {
public static ListBreakpointsRequest GetRootAsListBreakpointsRequest(ByteBuffer _bb) { return GetRootAsListBreakpointsRequest(_bb, new ListBreakpointsRequest()); }
public static ListBreakpointsRequest GetRootAsListBreakpointsRequest(ByteBuffer _bb, ListBreakpointsRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListBreakpointsRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartListBreakpointsRequest(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndListBreakpointsRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,34 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListBreakpointsResponse : Table {
public static ListBreakpointsResponse GetRootAsListBreakpointsResponse(ByteBuffer _bb) { return GetRootAsListBreakpointsResponse(_bb, new ListBreakpointsResponse()); }
public static ListBreakpointsResponse GetRootAsListBreakpointsResponse(ByteBuffer _bb, ListBreakpointsResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListBreakpointsResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public Breakpoint GetBreakpoints(int j) { return GetBreakpoints(new Breakpoint(), j); }
public Breakpoint GetBreakpoints(Breakpoint obj, int j) { int o = __offset(4); return o != 0 ? obj.__init(__vector(o) + j * 4, bb) : null; }
public int BreakpointsLength { get { int o = __offset(4); return o != 0 ? __vector_len(o) : 0; } }
public static int CreateListBreakpointsResponse(FlatBufferBuilder builder,
int breakpoints = 0) {
builder.StartObject(1);
ListBreakpointsResponse.AddBreakpoints(builder, breakpoints);
return ListBreakpointsResponse.EndListBreakpointsResponse(builder);
}
public static void StartListBreakpointsResponse(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddBreakpoints(FlatBufferBuilder builder, int breakpointsOffset) { builder.AddOffset(0, breakpointsOffset, 0); }
public static void StartBreakpointsVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
public static int EndListBreakpointsResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,39 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListFunctionsRequest : Table {
public static ListFunctionsRequest GetRootAsListFunctionsRequest(ByteBuffer _bb) { return GetRootAsListFunctionsRequest(_bb, new ListFunctionsRequest()); }
public static ListFunctionsRequest GetRootAsListFunctionsRequest(ByteBuffer _bb, ListFunctionsRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListFunctionsRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public uint ModuleId { get { int o = __offset(4); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint FunctionIndexStart { get { int o = __offset(6); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public uint FunctionIndexEnd { get { int o = __offset(8); return o != 0 ? bb.GetUint(o + bb_pos) : (uint)0; } }
public static int CreateListFunctionsRequest(FlatBufferBuilder builder,
uint module_id = 0,
uint function_index_start = 0,
uint function_index_end = 0) {
builder.StartObject(3);
ListFunctionsRequest.AddFunctionIndexEnd(builder, function_index_end);
ListFunctionsRequest.AddFunctionIndexStart(builder, function_index_start);
ListFunctionsRequest.AddModuleId(builder, module_id);
return ListFunctionsRequest.EndListFunctionsRequest(builder);
}
public static void StartListFunctionsRequest(FlatBufferBuilder builder) { builder.StartObject(3); }
public static void AddModuleId(FlatBufferBuilder builder, uint moduleId) { builder.AddUint(0, moduleId, 0); }
public static void AddFunctionIndexStart(FlatBufferBuilder builder, uint functionIndexStart) { builder.AddUint(1, functionIndexStart, 0); }
public static void AddFunctionIndexEnd(FlatBufferBuilder builder, uint functionIndexEnd) { builder.AddUint(2, functionIndexEnd, 0); }
public static int EndListFunctionsRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,35 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListFunctionsResponse : Table {
public static ListFunctionsResponse GetRootAsListFunctionsResponse(ByteBuffer _bb) { return GetRootAsListFunctionsResponse(_bb, new ListFunctionsResponse()); }
public static ListFunctionsResponse GetRootAsListFunctionsResponse(ByteBuffer _bb, ListFunctionsResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListFunctionsResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public FunctionEntry GetEntry(int j) { return GetEntry(new FunctionEntry(), j); }
public FunctionEntry GetEntry(FunctionEntry obj, int j) { int o = __offset(4); return o != 0 ? obj.__init(__indirect(__vector(o) + j * 4), bb) : null; }
public int EntryLength { get { int o = __offset(4); return o != 0 ? __vector_len(o) : 0; } }
public static int CreateListFunctionsResponse(FlatBufferBuilder builder,
int entry = 0) {
builder.StartObject(1);
ListFunctionsResponse.AddEntry(builder, entry);
return ListFunctionsResponse.EndListFunctionsResponse(builder);
}
public static void StartListFunctionsResponse(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddEntry(FlatBufferBuilder builder, int entryOffset) { builder.AddOffset(0, entryOffset, 0); }
public static int CreateEntryVector(FlatBufferBuilder builder, int[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i]); return builder.EndVector(); }
public static void StartEntryVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
public static int EndListFunctionsResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,23 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListModuleEntry : Struct {
public ListModuleEntry __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public uint Handle { get { return bb.GetUint(bb_pos + 0); } }
public uint FunctionCount { get { return bb.GetUint(bb_pos + 4); } }
public static int CreateListModuleEntry(FlatBufferBuilder builder, uint Handle, uint FunctionCount) {
builder.Prep(4, 8);
builder.PutUint(FunctionCount);
builder.PutUint(Handle);
return builder.Offset;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListModulesRequest : Table {
public static ListModulesRequest GetRootAsListModulesRequest(ByteBuffer _bb) { return GetRootAsListModulesRequest(_bb, new ListModulesRequest()); }
public static ListModulesRequest GetRootAsListModulesRequest(ByteBuffer _bb, ListModulesRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListModulesRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartListModulesRequest(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndListModulesRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,34 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListModulesResponse : Table {
public static ListModulesResponse GetRootAsListModulesResponse(ByteBuffer _bb) { return GetRootAsListModulesResponse(_bb, new ListModulesResponse()); }
public static ListModulesResponse GetRootAsListModulesResponse(ByteBuffer _bb, ListModulesResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListModulesResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public ListModuleEntry GetEntry(int j) { return GetEntry(new ListModuleEntry(), j); }
public ListModuleEntry GetEntry(ListModuleEntry obj, int j) { int o = __offset(4); return o != 0 ? obj.__init(__vector(o) + j * 8, bb) : null; }
public int EntryLength { get { int o = __offset(4); return o != 0 ? __vector_len(o) : 0; } }
public static int CreateListModulesResponse(FlatBufferBuilder builder,
int entry = 0) {
builder.StartObject(1);
ListModulesResponse.AddEntry(builder, entry);
return ListModulesResponse.EndListModulesResponse(builder);
}
public static void StartListModulesResponse(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddEntry(FlatBufferBuilder builder, int entryOffset) { builder.AddOffset(0, entryOffset, 0); }
public static void StartEntryVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(8, numElems, 4); }
public static int EndListModulesResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,22 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListThreadsRequest : Table {
public static ListThreadsRequest GetRootAsListThreadsRequest(ByteBuffer _bb) { return GetRootAsListThreadsRequest(_bb, new ListThreadsRequest()); }
public static ListThreadsRequest GetRootAsListThreadsRequest(ByteBuffer _bb, ListThreadsRequest obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListThreadsRequest __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartListThreadsRequest(FlatBufferBuilder builder) { builder.StartObject(0); }
public static int EndListThreadsRequest(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,35 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class ListThreadsResponse : Table {
public static ListThreadsResponse GetRootAsListThreadsResponse(ByteBuffer _bb) { return GetRootAsListThreadsResponse(_bb, new ListThreadsResponse()); }
public static ListThreadsResponse GetRootAsListThreadsResponse(ByteBuffer _bb, ListThreadsResponse obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public ListThreadsResponse __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public Thread GetThread(int j) { return GetThread(new Thread(), j); }
public Thread GetThread(Thread obj, int j) { int o = __offset(4); return o != 0 ? obj.__init(__indirect(__vector(o) + j * 4), bb) : null; }
public int ThreadLength { get { int o = __offset(4); return o != 0 ? __vector_len(o) : 0; } }
public static int CreateListThreadsResponse(FlatBufferBuilder builder,
int thread = 0) {
builder.StartObject(1);
ListThreadsResponse.AddThread(builder, thread);
return ListThreadsResponse.EndListThreadsResponse(builder);
}
public static void StartListThreadsResponse(FlatBufferBuilder builder) { builder.StartObject(1); }
public static void AddThread(FlatBufferBuilder builder, int threadOffset) { builder.AddOffset(0, threadOffset, 0); }
public static int CreateThreadVector(FlatBufferBuilder builder, int[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i]); return builder.EndVector(); }
public static void StartThreadVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
public static int EndListThreadsResponse(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,31 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
using FlatBuffers;
public sealed class Module : Table {
public static Module GetRootAsModule(ByteBuffer _bb) { return GetRootAsModule(_bb, new Module()); }
public static Module GetRootAsModule(ByteBuffer _bb, Module obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public Module __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public XObject Object { get { return GetObject(new XObject()); } }
public XObject GetObject(XObject obj) { int o = __offset(4); return o != 0 ? obj.__init(o + bb_pos, bb) : null; }
public ModuleType Type { get { int o = __offset(6); return o != 0 ? (ModuleType)bb.GetSbyte(o + bb_pos) : (ModuleType)0; } }
public string Name { get { int o = __offset(8); return o != 0 ? __string(o + bb_pos) : null; } }
public string Path { get { int o = __offset(10); return o != 0 ? __string(o + bb_pos) : null; } }
public static void StartModule(FlatBufferBuilder builder) { builder.StartObject(4); }
public static void AddObject(FlatBufferBuilder builder, int objectOffset) { builder.AddStruct(0, objectOffset, 0); }
public static void AddType(FlatBufferBuilder builder, ModuleType type) { builder.AddSbyte(1, (sbyte)(type), 0); }
public static void AddName(FlatBufferBuilder builder, int nameOffset) { builder.AddOffset(2, nameOffset, 0); }
public static void AddPath(FlatBufferBuilder builder, int pathOffset) { builder.AddOffset(3, pathOffset, 0); }
public static int EndModule(FlatBufferBuilder builder) {
int o = builder.EndObject();
return o;
}
};
}

View File

@ -1,13 +0,0 @@
// automatically generated, do not modify
namespace xe.debug.proto
{
public enum ModuleType : sbyte
{
Kernel = 0,
User = 1,
};
}

Some files were not shown because too many files have changed in this diff Show More