mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 03:28:20 +02:00
Win32 debugging fixes, more work on custom compile commands
Fixed working dir for 'launch' Fixed attaching to process - stack trace wasn't updating properly Fixed more custom compile stuff, and BeefySysLib bin destination Fixed linking issues related to Bfp* and Bp* exports in both BeefRT and BeefySysLib Fixed a crash with conditional breakpoints Fixed release mode IDE issues (related to hot swap breakpoints) Fixed hotswapping type data with LLVM builds Fixed 'Pause' state processing Running_ToTempBreakpoint for ScriptManager Fixed Win32 step out when there's an ESP adjustment at the return site Made step-out skip over "unimportant" instructions at return site
This commit is contained in:
parent
09016c8dc0
commit
a367b8165f
60 changed files with 1131 additions and 1065 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -10,8 +10,9 @@
|
||||||
BeefSpace_User.toml
|
BeefSpace_User.toml
|
||||||
lld-link.exe
|
lld-link.exe
|
||||||
stats/
|
stats/
|
||||||
IDE/dist/*
|
**/dist/*
|
||||||
dist/*
|
|
||||||
BeefySysLib/third_party/*
|
BeefySysLib/third_party/*
|
||||||
BeefTools/RandoCode/*
|
BeefTools/RandoCode/*
|
||||||
jbuild*/
|
jbuild*/
|
||||||
|
IDE/Tests/NewProject*/*
|
||||||
|
*.csproj.user
|
|
@ -742,6 +742,11 @@ bool BootApp::Compile()
|
||||||
|
|
||||||
mProject = BfSystem_CreateProject(mSystem, projectName.c_str());
|
mProject = BfSystem_CreateProject(mSystem, projectName.c_str());
|
||||||
|
|
||||||
|
if (!mDefines.IsEmpty())
|
||||||
|
mDefines.Append("\n");
|
||||||
|
mDefines.Append("BF_64_BIT");
|
||||||
|
mDefines.Append("\nBF_LITTLE_ENDIAN");
|
||||||
|
|
||||||
int ltoType = 0;
|
int ltoType = 0;
|
||||||
BfProject_SetOptions(mProject, mTargetType, mStartupObject.c_str(), mDefines.c_str(), mOptLevel, ltoType, false, false, false, false);
|
BfProject_SetOptions(mProject, mTargetType, mStartupObject.c_str(), mDefines.c_str(), mOptLevel, ltoType, false, false, false, false);
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ OptimizationLevel = "O0"
|
||||||
[Configs.Debug.Win64]
|
[Configs.Debug.Win64]
|
||||||
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
TargetName = "$(ProjectName)_d"
|
TargetName = "$(ProjectName)_d"
|
||||||
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib BeefySysLib64_d.lib Rpcrt4.lib Ole32.lib"
|
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib Rpcrt4.lib Ole32.lib"
|
||||||
CLibType = "Dynamic"
|
CLibType = "Dynamic"
|
||||||
BeefLibType = "DynamicDebug"
|
BeefLibType = "DynamicDebug"
|
||||||
DebugCommandArguments = "-workspace=."
|
DebugCommandArguments = "-workspace=."
|
||||||
|
@ -45,7 +45,7 @@ OptimizationLevel = "O0"
|
||||||
|
|
||||||
[Configs.Release.Win64]
|
[Configs.Release.Win64]
|
||||||
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
TargetDirectory = "$(WorkspaceDir)/../IDE/dist"
|
||||||
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64.lib BeefySysLib64.lib"
|
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64.lib"
|
||||||
CLibType = "Dynamic"
|
CLibType = "Dynamic"
|
||||||
DebugCommandArguments = "-proddir=..\\..\\BeefPerf -config=Release"
|
DebugCommandArguments = "-proddir=..\\..\\BeefPerf -config=Release"
|
||||||
DebugWorkingDirectory = "$(ProjectDir)\\dist"
|
DebugWorkingDirectory = "$(ProjectDir)\\dist"
|
||||||
|
|
|
@ -2,7 +2,6 @@ FileVersion = 1
|
||||||
|
|
||||||
[Project]
|
[Project]
|
||||||
Name = "Beefy2D"
|
Name = "Beefy2D"
|
||||||
TargetType = "BeefLib"
|
|
||||||
DefaultNamespace = ""
|
DefaultNamespace = ""
|
||||||
|
|
||||||
[Configs.Debug.Win32]
|
[Configs.Debug.Win32]
|
||||||
|
@ -11,14 +10,20 @@ PreprocessorMacros = ["DEBUG", "BF32"]
|
||||||
OptimizationLevel = "O0"
|
OptimizationLevel = "O0"
|
||||||
|
|
||||||
[Configs.Debug.Win64]
|
[Configs.Debug.Win64]
|
||||||
|
OtherLinkFlags = "$(LinkFlags) $(ProjectDir)/dist/BeefySysLib64_d.lib"
|
||||||
CLibType = "Static"
|
CLibType = "Static"
|
||||||
BeefLibType = "Static"
|
BeefLibType = "Static"
|
||||||
|
PostBuildCmds = ["CopyToDependents(\"$(ProjectDir)/dist/BeefySysLib64_d.dll\")", "CopyToDependents(\"$(ProjectDir)/dist/BeefySysLib64_d.pdb\")"]
|
||||||
|
|
||||||
[Configs.Release.Win32]
|
[Configs.Release.Win32]
|
||||||
OtherLinkFlags = ""
|
OtherLinkFlags = ""
|
||||||
PreprocessorMacros = ["RELEASE", "BF32"]
|
PreprocessorMacros = ["RELEASE", "BF32"]
|
||||||
OptimizationLevel = "O0"
|
OptimizationLevel = "O0"
|
||||||
|
|
||||||
|
[Configs.Release.Win64]
|
||||||
|
OtherLinkFlags = "$(LinkFlags) $(ProjectDir)/dist/BeefySysLib64.lib"
|
||||||
|
PostBuildCmds = ["CopyToDependents(\"$(ProjectDir)/dist/BeefySysLib64.dll\")", "CopyToDependents(\"$(ProjectDir)/dist/BeefySysLib64.pdb\")"]
|
||||||
|
|
||||||
[Configs.Paranoid.Win32]
|
[Configs.Paranoid.Win32]
|
||||||
CLibType = "Static"
|
CLibType = "Static"
|
||||||
BeefLibType = "Static"
|
BeefLibType = "Static"
|
||||||
|
|
|
@ -250,7 +250,8 @@ namespace Beefy.theme.dark
|
||||||
{
|
{
|
||||||
base.RemovedFromWindow();
|
base.RemovedFromWindow();
|
||||||
|
|
||||||
Debug.Assert(mHasClosed);
|
if (!mHasClosed)
|
||||||
|
Close();
|
||||||
|
|
||||||
WidgetWindow.sOnMouseDown.Remove(scope => HandleMouseDown, true);
|
WidgetWindow.sOnMouseDown.Remove(scope => HandleMouseDown, true);
|
||||||
WidgetWindow.sOnMouseWheel.Remove(scope => HandleMouseWheel, true);
|
WidgetWindow.sOnMouseWheel.Remove(scope => HandleMouseWheel, true);
|
||||||
|
|
|
@ -593,7 +593,7 @@ namespace Beefy.widgets
|
||||||
for (ListViewItem child in mChildItems)
|
for (ListViewItem child in mChildItems)
|
||||||
{
|
{
|
||||||
child.mVisible = (mShowChildPct > 0.0f);
|
child.mVisible = (mShowChildPct > 0.0f);
|
||||||
child.Resize(child.mX, curY, mWidth - child.mX, child.mSelfHeight);
|
child.ResizeClamped(child.mX, curY, mWidth - child.mX, child.mSelfHeight);
|
||||||
float resizeXOfs = xOffset;
|
float resizeXOfs = xOffset;
|
||||||
if (mParentItem != null)
|
if (mParentItem != null)
|
||||||
resizeXOfs += mX;
|
resizeXOfs += mX;
|
||||||
|
|
|
@ -295,6 +295,17 @@ namespace System.IO
|
||||||
outDrive.Append(path, 0, 2);
|
outDrive.Append(path, 0, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Tests if the given path contains a root. A path is considered rooted
|
||||||
|
/// if it starts with a backslash ("\") or a drive letter and a colon (":").
|
||||||
|
public static bool IsPathRooted(StringView path)
|
||||||
|
{
|
||||||
|
CheckInvalidPathChars(path);
|
||||||
|
int length = path.Length;
|
||||||
|
if ((length >= 1 && (path[0] == DirectorySeparatorChar || path[0] == AltDirectorySeparatorChar)) || (length >= 2 && path[1] == VolumeSeparatorChar))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static void GetRelativePath(StringView fullPath, StringView curDir, String outRelPath)
|
public static void GetRelativePath(StringView fullPath, StringView curDir, String outRelPath)
|
||||||
{
|
{
|
||||||
String curPath1 = scope String(curDir);
|
String curPath1 = scope String(curDir);
|
||||||
|
|
|
@ -72,6 +72,7 @@ namespace System.Reflection
|
||||||
case InvalidTarget;
|
case InvalidTarget;
|
||||||
case InvalidArgument(int32 paramIdx);
|
case InvalidArgument(int32 paramIdx);
|
||||||
case ParamCountMismatch;
|
case ParamCountMismatch;
|
||||||
|
case FFIError;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Result<Variant, CallError> Invoke(Object target, params Object[] args)
|
public Result<Variant, CallError> Invoke(Object target, params Object[] args)
|
||||||
|
@ -308,9 +309,15 @@ namespace System.Reflection
|
||||||
|
|
||||||
FFICaller caller = .();
|
FFICaller caller = .();
|
||||||
if (ffiParamList.Count > 0)
|
if (ffiParamList.Count > 0)
|
||||||
caller.Prep(abi, (.)ffiParamList.Count, ffiRetType, &ffiParamList[0]);
|
{
|
||||||
|
if (caller.Prep(abi, (.)ffiParamList.Count, ffiRetType, &ffiParamList[0]) case .Err)
|
||||||
|
return .Err(.FFIError);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
caller.Prep(abi, 0, ffiRetType, null);
|
{
|
||||||
|
if (caller.Prep(abi, 0, ffiRetType, null) case .Err)
|
||||||
|
return .Err(.FFIError);
|
||||||
|
}
|
||||||
|
|
||||||
void* funcPtr = mMethodData.mFuncPtr;
|
void* funcPtr = mMethodData.mFuncPtr;
|
||||||
if (mMethodData.mFlags.HasFlag(.Virtual))
|
if (mMethodData.mFlags.HasFlag(.Virtual))
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FileVersion = 1
|
FileVersion = 1
|
||||||
LastConfig = "Debug"
|
LastConfig = "Debug"
|
||||||
LastPlatform = "Win64"
|
LastPlatform = "Win64"
|
||||||
|
RecentFilesList = ["c:\\Beef\\BeefPerf\\src\\FMod_DSP.bf", "c:\\Beef\\BeefPerf\\src\\FMod.bf"]
|
||||||
|
|
||||||
[MainWindow]
|
[MainWindow]
|
||||||
X = 64
|
X = 64
|
||||||
|
@ -27,7 +28,7 @@ Type = "TabbedView"
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
Active = true
|
Active = true
|
||||||
TabLabel = "Workspace"
|
TabLabel = "Workspace"
|
||||||
TabWidth = 95.0
|
TabWidth = 115.0
|
||||||
Type = "ProjectPanel"
|
Type = "ProjectPanel"
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
|
||||||
|
@ -35,10 +36,27 @@ IsFillWidget = true
|
||||||
Permanent = true
|
Permanent = true
|
||||||
RequestedWidth = 150.0
|
RequestedWidth = 150.0
|
||||||
RequestedHeight = 150.0
|
RequestedHeight = 150.0
|
||||||
SizePriority = 1.0
|
SizePriority = 150.0
|
||||||
DefaultDocumentsTabbedView = true
|
DefaultDocumentsTabbedView = true
|
||||||
Type = "TabbedView"
|
Type = "TabbedView"
|
||||||
|
|
||||||
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
|
Active = true
|
||||||
|
TabLabel = "FMod_DSP.bf"
|
||||||
|
TabWidth = 116.0
|
||||||
|
Type = "SourceViewPanel"
|
||||||
|
FilePath = "c:\\Beef\\BeefPerf\\src\\FMod_DSP.bf"
|
||||||
|
CursorPos = 1876
|
||||||
|
ProjectName = "BeefPerf"
|
||||||
|
|
||||||
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
|
TabLabel = "FMod.bf"
|
||||||
|
TabWidth = 89.0
|
||||||
|
Type = "SourceViewPanel"
|
||||||
|
FilePath = "c:\\Beef\\BeefPerf\\src\\FMod.bf"
|
||||||
|
CursorPos = 518
|
||||||
|
ProjectName = "BeefPerf"
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets]]
|
[[MainDockingFrame.DockedWidgets]]
|
||||||
RequestedWidth = 250.0
|
RequestedWidth = 250.0
|
||||||
RequestedHeight = 250.0
|
RequestedHeight = 250.0
|
||||||
|
@ -53,21 +71,21 @@ Type = "TabbedView"
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
TabLabel = "Memory"
|
TabLabel = "Memory"
|
||||||
TabWidth = 150.0
|
TabWidth = 99.0
|
||||||
Type = "MemoryPanel"
|
Type = "MemoryPanel"
|
||||||
AutoResize = "Auto_Mul8"
|
AutoResize = "Auto_Mul8"
|
||||||
RequestedWidth = 300.0
|
RequestedWidth = 300.0
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
TabLabel = "Watch"
|
TabLabel = "Watch"
|
||||||
TabWidth = 150.0
|
TabWidth = 86.0
|
||||||
Type = "WatchPanel"
|
Type = "WatchPanel"
|
||||||
Columns = [{Width = 200.0}, {Width = 200.0}, {Width = 200.0}]
|
Columns = [{Width = 200.0}, {Width = 200.0}, {Width = 200.0}]
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
Active = true
|
Active = true
|
||||||
TabLabel = "Auto"
|
TabLabel = "Auto"
|
||||||
TabWidth = 150.0
|
TabWidth = 77.0
|
||||||
Type = "AutoWatchPanel"
|
Type = "AutoWatchPanel"
|
||||||
Columns = [{Width = 200.0}, {Width = 200.0}, {Width = 200.0}]
|
Columns = [{Width = 200.0}, {Width = 200.0}, {Width = 200.0}]
|
||||||
|
|
||||||
|
@ -77,25 +95,30 @@ RequestedHeight = 250.0
|
||||||
SizePriority = 0.5
|
SizePriority = 0.5
|
||||||
Type = "TabbedView"
|
Type = "TabbedView"
|
||||||
|
|
||||||
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
|
TabLabel = "Find Results"
|
||||||
|
TabWidth = 119.0
|
||||||
|
Type = "FindResultsPanel"
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
TabLabel = "Threads"
|
TabLabel = "Threads"
|
||||||
TabWidth = 150.0
|
TabWidth = 97.0
|
||||||
Type = "ThreadPanel"
|
Type = "ThreadPanel"
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
TabLabel = "Call Stack"
|
TabLabel = "Call Stack"
|
||||||
TabWidth = 150.0
|
TabWidth = 105.0
|
||||||
Type = "CallStackPanel"
|
Type = "CallStackPanel"
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
TabLabel = "Immediate"
|
TabLabel = "Immediate"
|
||||||
TabWidth = 150.0
|
TabWidth = 111.0
|
||||||
Type = "ImmediatePanel"
|
Type = "ImmediatePanel"
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
||||||
Active = true
|
Active = true
|
||||||
TabLabel = "Output"
|
TabLabel = "Output"
|
||||||
TabWidth = 150.0
|
TabWidth = 90.0
|
||||||
Type = "OutputPanel"
|
Type = "OutputPanel"
|
||||||
|
|
||||||
[DebuggerDisplayTypes.""]
|
[DebuggerDisplayTypes.""]
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
namespace FMOD
|
namespace FMOD
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace BfAeDebug
|
||||||
{
|
{
|
||||||
public partial class Form1 : Form
|
public partial class Form1 : Form
|
||||||
{
|
{
|
||||||
public Form1()
|
public Form1(String[] args)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
@ -32,6 +32,12 @@ namespace BfAeDebug
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mLabel.Text += " crash args:";
|
||||||
|
foreach (var arg in args)
|
||||||
|
{
|
||||||
|
mLabel.Text += " " + arg;
|
||||||
|
}
|
||||||
|
|
||||||
CenterToScreen();
|
CenterToScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace BfAeDebug
|
||||||
|
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
Application.Run(new Form1());
|
Application.Run(new Form1(args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,7 @@
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>$(ProjectName)32_d</TargetName>
|
<TargetName>$(ProjectName)32_d</TargetName>
|
||||||
<LibraryPath>$(LibraryPath);third_party\AK\lib\Win32_vc120\Debug(StaticCRT)\lib</LibraryPath>
|
<LibraryPath>$(LibraryPath);third_party\AK\lib\Win32_vc120\Debug(StaticCRT)\lib</LibraryPath>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
@ -134,14 +134,14 @@
|
||||||
<TargetName>$(ProjectName)64_d</TargetName>
|
<TargetName>$(ProjectName)64_d</TargetName>
|
||||||
<LibraryPath>third_party\AK\lib\debug;C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2007%29\Lib\x86;$(LibraryPath);$(WindowsSDK_LibraryPath_x86)</LibraryPath>
|
<LibraryPath>third_party\AK\lib\debug;C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2007%29\Lib\x86;$(LibraryPath);$(WindowsSDK_LibraryPath_x86)</LibraryPath>
|
||||||
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<TargetName>$(ProjectName)_d</TargetName>
|
<TargetName>$(ProjectName)_d</TargetName>
|
||||||
<LibraryPath>$(LibraryPath);third_party\AK\lib\Win32_vc120\Debug(StaticCRT)\lib</LibraryPath>
|
<LibraryPath>$(LibraryPath);third_party\AK\lib\Win32_vc120\Debug(StaticCRT)\lib</LibraryPath>
|
||||||
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
<IntDir>$(Configuration)\</IntDir>
|
||||||
<ExtensionsToDeleteOnClean>*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.xml;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
<ExtensionsToDeleteOnClean>*.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.xml;*.metagen;*.bi</ExtensionsToDeleteOnClean>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -150,13 +150,13 @@
|
||||||
<TargetName>$(ProjectName)_d</TargetName>
|
<TargetName>$(ProjectName)_d</TargetName>
|
||||||
<LibraryPath>third_party\AK\lib\debug;C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2007%29\Lib\x86;$(LibraryPath);third_party\libffi\i686-pc-cygwin\.libs</LibraryPath>
|
<LibraryPath>third_party\AK\lib\debug;C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2007%29\Lib\x86;$(LibraryPath);third_party\libffi\i686-pc-cygwin\.libs</LibraryPath>
|
||||||
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\Microsoft DirectX SDK (June 2007)\Include;C:\temp\wx\wxMSW-2.8.12\include;C:\temp\wx\wxMSW-2.8.12\include\msvc</IncludePath>
|
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\Microsoft DirectX SDK (June 2007)\Include;C:\temp\wx\wxMSW-2.8.12\include;C:\temp\wx\wxMSW-2.8.12\include\msvc</IncludePath>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<LibraryPath>$(LibraryPath);third_party\AK\lib\Win32_vc120\Release(StaticCRT)\lib</LibraryPath>
|
<LibraryPath>$(LibraryPath);third_party\AK\lib\Win32_vc120\Release(StaticCRT)\lib</LibraryPath>
|
||||||
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
||||||
<TargetName>$(ProjectName)32</TargetName>
|
<TargetName>$(ProjectName)32</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -164,19 +164,19 @@
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
<IncludePath>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
||||||
<TargetName>$(ProjectName)64</TargetName>
|
<TargetName>$(ProjectName)64</TargetName>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<LibraryPath>third_party\AK\lib\release;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86;$(FrameworkSDKDir)\lib;third_party\libffi\i686-pc-cygwin\.libs</LibraryPath>
|
<LibraryPath>third_party\AK\lib\release;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86;$(FrameworkSDKDir)\lib;third_party\libffi\i686-pc-cygwin\.libs</LibraryPath>
|
||||||
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\Microsoft DirectX SDK (June 2007)\Include;C:\temp\wx\wxMSW-2.8.12\include;C:\temp\wx\wxMSW-2.8.12\include\msvc</IncludePath>
|
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\Microsoft DirectX SDK (June 2007)\Include;C:\temp\wx\wxMSW-2.8.12\include;C:\temp\wx\wxMSW-2.8.12\include\msvc</IncludePath>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<LibraryPath>third_party\AK\lib\release;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86;$(FrameworkSDKDir)\lib</LibraryPath>
|
<LibraryPath>third_party\AK\lib\release;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86;$(FrameworkSDKDir)\lib</LibraryPath>
|
||||||
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\Microsoft DirectX SDK (June 2007)\Include;C:\temp\wx\wxMSW-2.8.12\include;C:\temp\wx\wxMSW-2.8.12\include\msvc</IncludePath>
|
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\Microsoft DirectX SDK (June 2007)\Include;C:\temp\wx\wxMSW-2.8.12\include;C:\temp\wx\wxMSW-2.8.12\include\msvc</IncludePath>
|
||||||
<OutDir>$(SolutionDir)\ide\dist\</OutDir>
|
<OutDir>$(SolutionDir)\IDE\dist\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -184,22 +184,33 @@
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;BF_NO_FBX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BFP_NOEXPORT;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;BF_NO_FBX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>./;./platform/win/;./platform/sdl/;third_party/agg-2.4/include;third_party/agg-2.4/include/platform/win32;third_party/;third_party/libffi/i686-pc-cygwin;third_party/libffi/i686-pc-cygwin/include;third_party/libffi/include;third_party/SDL2-2.0.1/include;../extern/fbxsdk/include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./;./platform/win/;./platform/sdl/;third_party/agg-2.4/include;third_party/agg-2.4/include/platform/win32;third_party/;third_party/libffi/i686-pc-cygwin;third_party/libffi/i686-pc-cygwin/include;third_party/libffi/include;third_party/SDL2-2.0.1/include;../extern/fbxsdk/include</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
<AdditionalLibraryDirectories>../extern/fbxsdk/lib/vs2012/x86/debug</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../extern/fbxsdk/lib/vs2012/x86/debug</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||||
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||||
</Link>
|
</Link>
|
||||||
<MASM>
|
<MASM>
|
||||||
<EnableMASM51Compatibility>false</EnableMASM51Compatibility>
|
<EnableMASM51Compatibility>false</EnableMASM51Compatibility>
|
||||||
</MASM>
|
</MASM>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -207,7 +218,7 @@
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;BF_NO_FBX;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BP_DYNAMIC;BFP_NOEXPORT;WIN32;_DEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;BF_NO_FBX;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>./;./platform/win/;./platform/sdl/;third_party/agg-2.4/include;third_party/agg-2.4/include/platform/win32;third_party/;third_party/libffi/i686-pc-cygwin;third_party/libffi/i686-pc-cygwin/include;third_party/libffi/include;third_party/SDL2-2.0.1/include;../extern/fbxsdk/include;third_party/freetype/include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./;./platform/win/;./platform/sdl/;third_party/agg-2.4/include;third_party/agg-2.4/include/platform/win32;third_party/;third_party/libffi/i686-pc-cygwin;third_party/libffi/i686-pc-cygwin/include;third_party/libffi/include;third_party/SDL2-2.0.1/include;../extern/fbxsdk/include;third_party/freetype/include</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<SupportJustMyCode>false</SupportJustMyCode>
|
<SupportJustMyCode>false</SupportJustMyCode>
|
||||||
|
@ -215,12 +226,22 @@
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
|
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
|
|
||||||
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||||
<BaseAddress>0x100000000</BaseAddress>
|
<BaseAddress>0x100000000</BaseAddress>
|
||||||
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -237,6 +258,17 @@
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\win\$(TargetName).dll</OutputFile>
|
<OutputFile>$(SolutionDir)\ide\dist\win\$(TargetName).dll</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -254,6 +286,17 @@
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\win\$(TargetName).dll</OutputFile>
|
<OutputFile>$(SolutionDir)\ide\dist\win\$(TargetName).dll</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -263,7 +306,7 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BFP_NOEXPORT;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>./; ./platform/win/; ./platform/sdl/; third_party/agg-2.4/include; third_party/agg-2.4/include/platform/win32; third_party/; third_party/libffi/i686-pc-cygwin; third_party/libffi/i686-pc-cygwin/include; third_party/libffi/include; third_party/SDL2-2.0.1/include;;../extern/fbxsdk/include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./; ./platform/win/; ./platform/sdl/; third_party/agg-2.4/include; third_party/agg-2.4/include/platform/win32; third_party/; third_party/libffi/i686-pc-cygwin; third_party/libffi/i686-pc-cygwin/include; third_party/libffi/include; third_party/SDL2-2.0.1/include;;../extern/fbxsdk/include</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -272,13 +315,24 @@
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||||
<AdditionalLibraryDirectories>../extern/fbxsdk/lib/vs2012/x86/release</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../extern/fbxsdk/lib/vs2012/x86/release</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||||
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -288,7 +342,7 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;BF_NO_FBX;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BP_DYNAMIC;BFP_NOEXPORT;WIN32;NDEBUG;_WINDOWS;_USRDLL;BFSYSLIB_DYNAMIC;BF_NO_FBX;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>./;./platform/win/;./platform/sdl/;third_party/agg-2.4/include;third_party/agg-2.4/include/platform/win32;third_party/;third_party/libffi/i686-pc-cygwin;third_party/libffi/i686-pc-cygwin/include;third_party/libffi/include;third_party/SDL2-2.0.1/include;../extern/fbxsdk/include;third_party/freetype/include</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./;./platform/win/;./platform/sdl/;third_party/agg-2.4/include;third_party/agg-2.4/include/platform/win32;third_party/;third_party/libffi/i686-pc-cygwin;third_party/libffi/i686-pc-cygwin/include;third_party/libffi/include;third_party/SDL2-2.0.1/include;../extern/fbxsdk/include;third_party/freetype/include</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -297,11 +351,22 @@
|
||||||
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
|
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\$(TargetName).dll</OutputFile>
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>imm32.lib;version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||||
<ImportLibrary>$(SolutionDir)\ide\dist\$(TargetName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -322,6 +387,17 @@
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\win\BeefySysLib.dll</OutputFile>
|
<OutputFile>$(SolutionDir)\ide\dist\win\BeefySysLib.dll</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
@ -342,6 +418,17 @@
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<OutputFile>$(SolutionDir)\ide\dist\win\BeefySysLib.dll</OutputFile>
|
<OutputFile>$(SolutionDir)\ide\dist\win\BeefySysLib.dll</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
|
<CustomBuildStep>
|
||||||
|
<Command>
|
||||||
|
</Command>
|
||||||
|
<Message>
|
||||||
|
</Message>
|
||||||
|
</CustomBuildStep>
|
||||||
|
<PostBuildEvent>
|
||||||
|
<Command>copy /y $(OutDir)$(TargetName).dll $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).pdb $(SolutionDir)\BeefLibs\Beefy2D\dist\
|
||||||
|
copy /y $(OutDir)$(TargetName).lib $(SolutionDir)\BeefLibs\Beefy2D\dist\</Command>
|
||||||
|
</PostBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="BFApp.cpp" />
|
<ClCompile Include="BFApp.cpp" />
|
||||||
|
@ -2086,24 +2173,24 @@
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">ml.exe /c /nologo /Zi /Fo"$(OutDir)$(TargetName).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">ml.exe /c /nologo /Zi /Fo"$(IntDir)%(Filename).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">Executing MASM</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">Executing MASM</Message>
|
||||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">ml64.exe /c /nologo /Zi /Fo"$(OutDir)$(TargetName).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">ml64.exe /c /nologo /Zi /Fo"$(IntDir)%(Filename).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Executing MASM</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Executing MASM</Message>
|
||||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ml.exe /c /nologo /Zi /Fo"$(OutDir)$(TargetName).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ml.exe /c /nologo /Zi /Fo"$(IntDir)%(Filename).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Executing MASM</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Executing MASM</Message>
|
||||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">ml.exe /c /nologo /Zi /Fo"$(OutDir)$(TargetName).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">ml.exe /c /nologo /Zi /Fo"$(IntDir)%(Filename).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">Executing MASM</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">Executing MASM</Message>
|
||||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(OutDir)$(TargetName).obj</Outputs>
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename).obj</Outputs>
|
||||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">$(OutDir)$(TargetName).obj</Outputs>
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">$(IntDir)%(Filename).obj</Outputs>
|
||||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(OutDir)$(TargetName).obj</Outputs>
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename).obj</Outputs>
|
||||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">$(OutDir)$(TargetName).obj</Outputs>
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">$(IntDir)%(Filename).obj</Outputs>
|
||||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ml64.exe /c /nologo /Zi /Fo"$(OutDir)$(TargetName).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ml64.exe /c /nologo /Zi /Fo"$(IntDir)%(Filename).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Executing MASM</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Executing MASM</Message>
|
||||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(OutDir)$(TargetName).obj</Outputs>
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename).obj</Outputs>
|
||||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ml64.exe /c /nologo /Zi /Fo"$(OutDir)$(TargetName).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ml64.exe /c /nologo /Zi /Fo"$(IntDir)%(Filename).obj" /Fl"" /W3 /errorReport:prompt /Ta %(FullPath)</Command>
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Executing MASM</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Executing MASM</Message>
|
||||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(OutDir)$(TargetName).obj</Outputs>
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename).obj</Outputs>
|
||||||
</CustomBuild>
|
</CustomBuild>
|
||||||
<CustomBuild Include="third_party\libffi\i686-pc-cygwin\src\x86\win32.asm">
|
<CustomBuild Include="third_party\libffi\i686-pc-cygwin\src\x86\win32.asm">
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
|
|
|
@ -97,8 +97,14 @@ extern "C" _CRTIMP int __cdecl __MINGW_NOTHROW _stricmp (const char*, const char
|
||||||
#define BF_IMPORT extern "C" __declspec(dllimport)
|
#define BF_IMPORT extern "C" __declspec(dllimport)
|
||||||
|
|
||||||
#ifdef BFSYSLIB_DYNAMIC
|
#ifdef BFSYSLIB_DYNAMIC
|
||||||
|
|
||||||
#define BF_EXPORT extern "C" __declspec(dllexport)
|
#define BF_EXPORT extern "C" __declspec(dllexport)
|
||||||
#define BF_CALLTYPE __stdcall
|
#define BF_CALLTYPE __stdcall
|
||||||
|
#ifdef BFP_NOEXPORT
|
||||||
|
#define BFP_EXPORT extern "C"
|
||||||
|
#define BFP_CALLTYPE __stdcall
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define BF_EXPORT extern "C"
|
#define BF_EXPORT extern "C"
|
||||||
#define BF_CALLTYPE __stdcall
|
#define BF_CALLTYPE __stdcall
|
||||||
|
|
|
@ -1615,146 +1615,146 @@ BpManager* BpManager::Get()
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpShutdown()
|
BP_EXPORT void BP_CALLTYPE BpShutdown()
|
||||||
{
|
{
|
||||||
BpManager::Get()->Shutdown();
|
BpManager::Get()->Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpSetClientName(const char* clientName)
|
BP_EXPORT void BP_CALLTYPE BpSetClientName(const char* clientName)
|
||||||
{
|
{
|
||||||
BpManager::Get()->SetClientName(clientName);
|
BpManager::Get()->SetClientName(clientName);
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpInit(const char* serverName, const char* sessionName)
|
BP_EXPORT void BP_CALLTYPE BpInit(const char* serverName, const char* sessionName)
|
||||||
{
|
{
|
||||||
BpManager::Get()->Init(serverName, sessionName);
|
BpManager::Get()->Init(serverName, sessionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT BpConnectState BF_CALLTYPE BpGetConnectState()
|
BP_EXPORT BpConnectState BP_CALLTYPE BpGetConnectState()
|
||||||
{
|
{
|
||||||
return BpManager::Get()->mConnectState;
|
return BpManager::Get()->mConnectState;
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpRetryConnect()
|
BP_EXPORT void BP_CALLTYPE BpRetryConnect()
|
||||||
{
|
{
|
||||||
return BpManager::Get()->RetryConnect();
|
return BpManager::Get()->RetryConnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpPause()
|
BP_EXPORT void BP_CALLTYPE BpPause()
|
||||||
{
|
{
|
||||||
BpManager::Get()->Pause();
|
BpManager::Get()->Pause();
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpUnpause()
|
BP_EXPORT void BP_CALLTYPE BpUnpause()
|
||||||
{
|
{
|
||||||
BpManager::Get()->Unpause();
|
BpManager::Get()->Unpause();
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpSetThreadName(const char* threadName)
|
BP_EXPORT void BP_CALLTYPE BpSetThreadName(const char* threadName)
|
||||||
{
|
{
|
||||||
BpManager::GetCurThreadInfo()->SetThreadName(threadName);
|
BpManager::GetCurThreadInfo()->SetThreadName(threadName);
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpEnter(const char* zoneName)
|
BP_EXPORT void BP_CALLTYPE BpEnter(const char* zoneName)
|
||||||
{
|
{
|
||||||
BpManager::GetCurThreadInfo()->Enter(zoneName);
|
BpManager::GetCurThreadInfo()->Enter(zoneName);
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpEnterF(const char* zoneName, ...)
|
BP_EXPORT void BP_CALLTYPE BpEnterF(const char* zoneName, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, zoneName);
|
va_start(args, zoneName);
|
||||||
BpManager::GetCurThreadInfo()->Enter(zoneName, args);
|
BpManager::GetCurThreadInfo()->Enter(zoneName, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpLeave()
|
BP_EXPORT void BP_CALLTYPE BpLeave()
|
||||||
{
|
{
|
||||||
BpManager::GetCurThreadInfo()->Leave();
|
BpManager::GetCurThreadInfo()->Leave();
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpFrameTick()
|
BP_EXPORT void BP_CALLTYPE BpFrameTick()
|
||||||
{
|
{
|
||||||
BpManager::Get()->Tick();
|
BpManager::Get()->Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpEvent(const char* name, const char* details)
|
BP_EXPORT void BP_CALLTYPE BpEvent(const char* name, const char* details)
|
||||||
{
|
{
|
||||||
BpManager::GetCurThreadInfo()->Event(name, details);
|
BpManager::GetCurThreadInfo()->Event(name, details);
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT const char* BF_CALLTYPE BpDynStr(const char* str)
|
BP_EXPORT const char* BP_CALLTYPE BpDynStr(const char* str)
|
||||||
{
|
{
|
||||||
return BpManager::GetCurThreadInfo()->DynamicString(str);
|
return BpManager::GetCurThreadInfo()->DynamicString(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpShutdown()
|
BP_EXPORT void BP_CALLTYPE BpShutdown()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT BpConnectState BF_CALLTYPE BpGetConnectState()
|
BP_EXPORT BpConnectState BP_CALLTYPE BpGetConnectState()
|
||||||
{
|
{
|
||||||
return BpConnectState_NotConnected;
|
return BpConnectState_NotConnected;
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpRetryConnect()
|
BP_EXPORT void BP_CALLTYPE BpRetryConnect()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpPause()
|
BP_EXPORT void BP_CALLTYPE BpPause()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpUnpause()
|
BP_EXPORT void BP_CALLTYPE BpUnpause()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpSetClientName(const char* clientName)
|
BP_EXPORT void BP_CALLTYPE BpSetClientName(const char* clientName)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpInit(const char* serverName, const char* sessionName)
|
BP_EXPORT void BP_CALLTYPE BpInit(const char* serverName, const char* sessionName)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpSetThreadName(const char* threadName)
|
BP_EXPORT void BP_CALLTYPE BpSetThreadName(const char* threadName)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpEnter(const char* zoneName)
|
BP_EXPORT void BP_CALLTYPE BpEnter(const char* zoneName)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpEnterF(const char* zoneName, ...)
|
BP_EXPORT void BP_CALLTYPE BpEnterF(const char* zoneName, ...)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpLeave()
|
BP_EXPORT void BP_CALLTYPE BpLeave()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpFrameTick()
|
BP_EXPORT void BP_CALLTYPE BpFrameTick()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpEvent(const char* name, const char* details)
|
BP_EXPORT void BP_CALLTYPE BpEvent(const char* name, const char* details)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BF_EXPORT const char* BF_CALLTYPE BpDynStr(const char* str)
|
BP_EXPORT const char* BP_CALLTYPE BpDynStr(const char* str)
|
||||||
{
|
{
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
|
@ -315,17 +315,25 @@ public:
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpInit(const char* serverName, const char* sessionName);
|
#ifdef BP_DYNAMIC
|
||||||
BF_EXPORT void BF_CALLTYPE BpShutdown();
|
#define BP_EXPORT BF_EXPORT
|
||||||
BF_EXPORT BpConnectState BF_CALLTYPE BpGetConnectState();
|
#define BP_CALLTYPE BF_CALLTYPE
|
||||||
BF_EXPORT void BF_CALLTYPE BpRetryConnect();
|
#else
|
||||||
BF_EXPORT void BF_CALLTYPE BpPause();
|
#define BP_EXPORT
|
||||||
BF_EXPORT void BF_CALLTYPE BpUnpause();
|
#define BP_CALLTYPE
|
||||||
BF_EXPORT void BF_CALLTYPE BpSetClientName(const char* clientName);
|
#endif
|
||||||
BF_EXPORT void BF_CALLTYPE BpSetThreadName(const char* threadName);
|
|
||||||
BF_EXPORT void BF_CALLTYPE BpEnter(const char* zoneName);
|
BP_EXPORT void BP_CALLTYPE BpInit(const char* serverName, const char* sessionName);
|
||||||
BF_EXPORT void BF_CALLTYPE BpEnterF(const char* zoneName, ...);
|
BP_EXPORT void BP_CALLTYPE BpShutdown();
|
||||||
BF_EXPORT void BF_CALLTYPE BpLeave();
|
BP_EXPORT BpConnectState BP_CALLTYPE BpGetConnectState();
|
||||||
BF_EXPORT void BF_CALLTYPE BpFrameTick();
|
BP_EXPORT void BP_CALLTYPE BpRetryConnect();
|
||||||
BF_EXPORT void BF_CALLTYPE BpEvent(const char* name, const char* details);
|
BP_EXPORT void BP_CALLTYPE BpPause();
|
||||||
BF_EXPORT const char* BF_CALLTYPE BpDynStr(const char* str);
|
BP_EXPORT void BP_CALLTYPE BpUnpause();
|
||||||
|
BP_EXPORT void BP_CALLTYPE BpSetClientName(const char* clientName);
|
||||||
|
BP_EXPORT void BP_CALLTYPE BpSetThreadName(const char* threadName);
|
||||||
|
BP_EXPORT void BP_CALLTYPE BpEnter(const char* zoneName);
|
||||||
|
BP_EXPORT void BP_CALLTYPE BpEnterF(const char* zoneName, ...);
|
||||||
|
BP_EXPORT void BP_CALLTYPE BpLeave();
|
||||||
|
BP_EXPORT void BP_CALLTYPE BpFrameTick();
|
||||||
|
BP_EXPORT void BP_CALLTYPE BpEvent(const char* name, const char* details);
|
||||||
|
BP_EXPORT const char* BP_CALLTYPE BpDynStr(const char* str);
|
||||||
|
|
|
@ -25,9 +25,9 @@ OptimizationLevel = "O0"
|
||||||
[Configs.Debug.Win64]
|
[Configs.Debug.Win64]
|
||||||
TargetDirectory = "$(WorkspaceDir)/dist"
|
TargetDirectory = "$(WorkspaceDir)/dist"
|
||||||
TargetName = "BeefIDE_d"
|
TargetName = "BeefIDE_d"
|
||||||
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib BeefySysLib64_d.lib"
|
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib"
|
||||||
CLibType = "Dynamic"
|
CLibType = "Dynamic"
|
||||||
DebugCommandArguments = "-open=c:\\proj\\TestCPP\\TestCPP.bfdbg"
|
DebugCommandArguments = "-proddir=C:\\Beef\\IDE\\Tests\\Test1 -test=scripts\\HotSwap_VirtualRemap.txt -platform=Win64 -testNoExit"
|
||||||
DebugWorkingDirectory = "c:\\Beef\\IDE\\Tests\\EmptyTest"
|
DebugWorkingDirectory = "c:\\Beef\\IDE\\Tests\\EmptyTest"
|
||||||
EnvironmentVars = ["_NO_DEBUG_HEAP=1"]
|
EnvironmentVars = ["_NO_DEBUG_HEAP=1"]
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ TargetDirectory = "$(WorkspaceDir)/dist"
|
||||||
TargetName = "BeefIDE"
|
TargetName = "BeefIDE"
|
||||||
OtherLinkFlags = "Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib Beef042RT64.lib IDEHelper64.lib BeefySysLib64.lib"
|
OtherLinkFlags = "Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib Beef042RT64.lib IDEHelper64.lib BeefySysLib64.lib"
|
||||||
CLibType = "Dynamic"
|
CLibType = "Dynamic"
|
||||||
DebugCommandArguments = "-proddir=\\Beef\\IDE\\Tests\\Rando -test=\\Beef\\IDE\\Tests\\scripts\\DebugAndExit.txt -testNoExit"
|
DebugCommandArguments = "-proddir=C:\\Beef\\IDE\\Tests\\Test1 -test=scripts\\HotSwap_BaseChange.txt -testNoExit"
|
||||||
DebugWorkingDirectory = "$(ProjectDir)\\dist"
|
DebugWorkingDirectory = "$(ProjectDir)\\dist"
|
||||||
EnvironmentVars = ["_NO_DEBUG_HEAP=1"]
|
EnvironmentVars = ["_NO_DEBUG_HEAP=1"]
|
||||||
|
|
||||||
|
|
|
@ -1,484 +0,0 @@
|
||||||
FileVersion = 1
|
|
||||||
LastConfig = "Debug"
|
|
||||||
LastPlatform = "Win64"
|
|
||||||
RecentFilesList = ["c:\\beef\\ide\\src\\IDEApp.bf", "c:\\beef\\IDEHelper\\DebugManager.cpp", "c:\\beef\\IDEHelper\\Compiler\\BfModule.cpp", "c:\\beef\\IDEHelper\\Compiler\\BfCompiler.cpp", "c:\\beef\\ide\\src\\BuildContext.bf", "c:\\beef\\beefrt\\dbg\\gc.cpp", "c:\\beef\\ide\\src\\ScriptManager.bf", "c:\\beef\\ide\\src\\Project.bf", "c:\\beef\\ide\\src\\CommandQueueManager.bf", "c:\\Beef\\BeefLibs\\corlib\\src\\System\\String.bf"]
|
|
||||||
StepFilters = ["System.StringView.operator System.StringView"]
|
|
||||||
|
|
||||||
[MainWindow]
|
|
||||||
X = 1021
|
|
||||||
Y = 227
|
|
||||||
Width = 2206
|
|
||||||
Height = 1810
|
|
||||||
|
|
||||||
[MainDockingFrame]
|
|
||||||
Type = "DockingFrame"
|
|
||||||
SplitType = 2
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets]]
|
|
||||||
RequestedWidth = 350.0
|
|
||||||
RequestedHeight = 200.0
|
|
||||||
SizePriority = 200.0
|
|
||||||
Type = "DockingFrame"
|
|
||||||
SplitType = 1
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
|
|
||||||
RequestedWidth = 200.0
|
|
||||||
RequestedHeight = 200.0
|
|
||||||
Type = "TabbedView"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
Active = true
|
|
||||||
TabLabel = "Workspace"
|
|
||||||
TabWidth = 115.0
|
|
||||||
Type = "ProjectPanel"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
|
|
||||||
IsFillWidget = true
|
|
||||||
Permanent = true
|
|
||||||
RequestedWidth = 150.0
|
|
||||||
RequestedHeight = 150.0
|
|
||||||
SizePriority = 150.0
|
|
||||||
DefaultDocumentsTabbedView = true
|
|
||||||
Type = "TabbedView"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "DebugManager.cpp"
|
|
||||||
TabWidth = 156.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\IDEHelper\\DebugManager.cpp"
|
|
||||||
CursorPos = 15042
|
|
||||||
VertPos = 8490.0
|
|
||||||
ProjectName = "IDEHelper"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "CommandQueueManager.bf"
|
|
||||||
TabWidth = 205.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\CommandQueueManager.bf"
|
|
||||||
CursorPos = 896
|
|
||||||
VertPos = 1170.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "ProjectProperties.bf"
|
|
||||||
TabWidth = 145.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\ProjectProperties.bf"
|
|
||||||
CursorPos = 1930
|
|
||||||
VertPos = 270.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "ProjectPanel.bf"
|
|
||||||
TabWidth = 116.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\ProjectPanel.bf"
|
|
||||||
CursorPos = 58964
|
|
||||||
VertPos = 25350.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Directory.bf"
|
|
||||||
TabWidth = 98.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\IO\\Directory.bf"
|
|
||||||
CursorPos = 294
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "AutoComplete.bf"
|
|
||||||
TabWidth = 128.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\AutoComplete.bf"
|
|
||||||
CursorPos = 5948
|
|
||||||
VertPos = 3060.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Stopwatch.bf"
|
|
||||||
TabWidth = 105.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Diagnostics\\Stopwatch.bf"
|
|
||||||
CursorPos = 309
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "IComparable.bf"
|
|
||||||
TabWidth = 120.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\IComparable.bf"
|
|
||||||
CursorPos = 404
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Dictionary.bf"
|
|
||||||
TabWidth = 103.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Collections\\Generic\\Dictionary.bf"
|
|
||||||
CursorPos = 13141
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Workspace.bf"
|
|
||||||
TabWidth = 110.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\Workspace.bf"
|
|
||||||
CursorPos = 10820
|
|
||||||
VertPos = 5745.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Project.bf"
|
|
||||||
TabWidth = 85.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\Project.bf"
|
|
||||||
CursorPos = 31286
|
|
||||||
VertPos = 16875.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "gc.cpp"
|
|
||||||
TabWidth = 69.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\beefrt\\dbg\\gc.cpp"
|
|
||||||
CursorPos = 29571
|
|
||||||
VertPos = 16845.0
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "String.bf"
|
|
||||||
TabWidth = 79.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\String.bf"
|
|
||||||
CursorPos = 20322
|
|
||||||
VertPos = 11775.0
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "ImmediatePanel.bf"
|
|
||||||
TabWidth = 137.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\ImmediatePanel.bf"
|
|
||||||
CursorPos = 1248
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "StatusBar.bf"
|
|
||||||
TabWidth = 98.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\StatusBar.bf"
|
|
||||||
CursorPos = 11876
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "ImmediateWidget.bf"
|
|
||||||
TabWidth = 148.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\ImmediateWidget.bf"
|
|
||||||
CursorPos = 10575
|
|
||||||
VertPos = 4425.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "ScriptManager.bf"
|
|
||||||
TabWidth = 130.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ScriptManager.bf"
|
|
||||||
CursorPos = 46372
|
|
||||||
VertPos = 29080.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "ListView.bf"
|
|
||||||
TabWidth = 91.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\BeefLibs\\Beefy2D\\src\\widgets\\ListView.bf"
|
|
||||||
CursorPos = 24610
|
|
||||||
ProjectName = "Beefy2D"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "EditWidget.bf"
|
|
||||||
TabWidth = 109.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\BeefLibs\\Beefy2D\\src\\widgets\\EditWidget.bf"
|
|
||||||
CursorPos = 70859
|
|
||||||
ProjectName = "Beefy2D"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "OpenFileInSolutionDialog.bf"
|
|
||||||
TabWidth = 191.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\OpenFileInSolutionDialog.bf"
|
|
||||||
CursorPos = 3378
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "InstalledProjectDialog.bf"
|
|
||||||
TabWidth = 171.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\InstalledProjectDialog.bf"
|
|
||||||
CursorPos = 2662
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "ClassViewPanel.bf"
|
|
||||||
TabWidth = 133.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\ClassViewPanel.bf"
|
|
||||||
CursorPos = 10536
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BinaryDataWidget.bf"
|
|
||||||
TabWidth = 149.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\ui\\BinaryDataWidget.bf"
|
|
||||||
CursorPos = 87580
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BfIRBuilder.cpp"
|
|
||||||
TabWidth = 116.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfIRBuilder.cpp"
|
|
||||||
CursorPos = 132547
|
|
||||||
ProjectName = "IDEHelper"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BfIRCodeGen.cpp"
|
|
||||||
TabWidth = 131.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfIRCodeGen.cpp"
|
|
||||||
CursorPos = 124783
|
|
||||||
ProjectName = "IDEHelper"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "memory"
|
|
||||||
TabWidth = 78.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Tools\\MSVC\\14.21.27702\\include\\memory"
|
|
||||||
CursorPos = 68115
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Verifier.cpp"
|
|
||||||
TabWidth = 96.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\Verifier.cpp"
|
|
||||||
CursorPos = 189261
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BfExprEvaluator.cpp"
|
|
||||||
TabWidth = 145.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfExprEvaluator.cpp"
|
|
||||||
CursorPos = 395532
|
|
||||||
ProjectName = "IDEHelper"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BfModule.cpp"
|
|
||||||
TabWidth = 111.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfModule.cpp"
|
|
||||||
CursorPos = 701696
|
|
||||||
VertPos = 303765.0
|
|
||||||
ProjectName = "IDEHelper"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Result.bf"
|
|
||||||
TabWidth = 80.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Result.bf"
|
|
||||||
CursorPos = 699
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "LegacyPassManager.cpp"
|
|
||||||
TabWidth = 173.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\LegacyPassManager.cpp"
|
|
||||||
CursorPos = 56552
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "LexicalScopes.cpp"
|
|
||||||
TabWidth = 135.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\CodeGen\\LexicalScopes.cpp"
|
|
||||||
CursorPos = 6263
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "TimeZoneInfo.bf"
|
|
||||||
TabWidth = 124.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\TimeZoneInfo.bf"
|
|
||||||
CursorPos = 118021
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Windows.bf"
|
|
||||||
TabWidth = 98.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\Beef\\BeefLibs\\corlib\\src\\System\\Windows.bf"
|
|
||||||
CursorPos = 40234
|
|
||||||
ProjectName = "corlib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Platform.cpp"
|
|
||||||
TabWidth = 104.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\BeefySysLib\\platform\\win\\Platform.cpp"
|
|
||||||
CursorPos = 59719
|
|
||||||
ProjectName = "BeefySysLib"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BfCompiler.bf"
|
|
||||||
TabWidth = 108.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\Compiler\\BfCompiler.bf"
|
|
||||||
CursorPos = 7397
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BfCompiler.cpp"
|
|
||||||
TabWidth = 118.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\IDEHelper\\Compiler\\BfCompiler.cpp"
|
|
||||||
CursorPos = 181147
|
|
||||||
VertPos = 82605.0
|
|
||||||
ProjectName = "IDEHelper"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "WinDebugger.cpp"
|
|
||||||
TabWidth = 135.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\IDEHelper\\WinDebugger.cpp"
|
|
||||||
CursorPos = 120268
|
|
||||||
ProjectName = "Debugger64"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "BuildContext.bf"
|
|
||||||
TabWidth = 117.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\BuildContext.bf"
|
|
||||||
CursorPos = 3642
|
|
||||||
VertPos = 1395.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
Active = true
|
|
||||||
TabLabel = "IDEApp.bf"
|
|
||||||
TabWidth = 88.0
|
|
||||||
Type = "SourceViewPanel"
|
|
||||||
FilePath = "c:\\beef\\ide\\src\\IDEApp.bf"
|
|
||||||
CursorPos = 320852
|
|
||||||
VertPos = 158655.0
|
|
||||||
ProjectName = "IDE"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets]]
|
|
||||||
RequestedWidth = 250.0
|
|
||||||
RequestedHeight = 408.0
|
|
||||||
Type = "DockingFrame"
|
|
||||||
SplitType = 1
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
|
|
||||||
RequestedWidth = 250.0
|
|
||||||
RequestedHeight = 250.0
|
|
||||||
SizePriority = 0.4483547
|
|
||||||
Type = "TabbedView"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Profile"
|
|
||||||
TabWidth = 87.0
|
|
||||||
Type = "ProfilePanel"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Breakpoints"
|
|
||||||
TabWidth = 118.0
|
|
||||||
Type = "BreakpointPanel"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Memory"
|
|
||||||
TabWidth = 99.0
|
|
||||||
Type = "MemoryPanel"
|
|
||||||
AutoResize = "Auto_Mul8"
|
|
||||||
RequestedWidth = 104.0
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
Active = true
|
|
||||||
TabLabel = "Watch"
|
|
||||||
TabWidth = 86.0
|
|
||||||
Type = "WatchPanel"
|
|
||||||
Columns = [{Width = 306.0}, {Width = 675.0}, {Width = 200.0}]
|
|
||||||
Items = ["this", "instIdx", "mcBlock", "bfProject", "gApp", ""]
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Auto"
|
|
||||||
TabWidth = 77.0
|
|
||||||
Type = "AutoWatchPanel"
|
|
||||||
Columns = [{Width = 200.0}, {Width = 442.0}, {Width = 200.0}]
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
|
|
||||||
RequestedWidth = 910.0
|
|
||||||
RequestedHeight = 793.0
|
|
||||||
SizePriority = 0.1984133
|
|
||||||
Type = "TabbedView"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
Active = true
|
|
||||||
TabLabel = "Immediate"
|
|
||||||
TabWidth = 111.0
|
|
||||||
Type = "ImmediatePanel"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets]]
|
|
||||||
RequestedWidth = 250.0
|
|
||||||
RequestedHeight = 250.0
|
|
||||||
SizePriority = 0.353232
|
|
||||||
Type = "TabbedView"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Find Results"
|
|
||||||
TabWidth = 119.0
|
|
||||||
Type = "FindResultsPanel"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Threads"
|
|
||||||
TabWidth = 97.0
|
|
||||||
Type = "ThreadPanel"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
TabLabel = "Call Stack"
|
|
||||||
TabWidth = 105.0
|
|
||||||
Type = "CallStackPanel"
|
|
||||||
|
|
||||||
[[MainDockingFrame.DockedWidgets.DockedWidgets.Tabs]]
|
|
||||||
Active = true
|
|
||||||
TabLabel = "Output"
|
|
||||||
TabWidth = 90.0
|
|
||||||
Type = "OutputPanel"
|
|
||||||
|
|
||||||
[[Breakpoints]]
|
|
||||||
File = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\Verifier.cpp"
|
|
||||||
Line = 4875
|
|
||||||
Column = 6
|
|
||||||
|
|
||||||
[[Breakpoints]]
|
|
||||||
File = "c:\\Beef\\extern\\llvm-project_8_0_0\\llvm\\lib\\IR\\Verifier.cpp"
|
|
||||||
Line = 214
|
|
||||||
Column = 4
|
|
||||||
|
|
||||||
[[Breakpoints]]
|
|
||||||
File = "c:\\beef\\ide\\src\\Workspace.bf"
|
|
||||||
Line = 661
|
|
||||||
Column = 3
|
|
||||||
|
|
||||||
[[Bookmarks]]
|
|
||||||
File = "c:\\beef\\ide\\src\\BuildContext.bf"
|
|
||||||
Line = 465
|
|
||||||
Column = 6
|
|
||||||
|
|
||||||
[[Bookmarks]]
|
|
||||||
File = "c:\\beef\\ide\\src\\BuildContext.bf"
|
|
||||||
Line = 465
|
|
||||||
Column = 6
|
|
||||||
|
|
||||||
[DebuggerDisplayTypes.""]
|
|
||||||
IntDisplayType = "Hexadecimal"
|
|
||||||
MmDisplayType = "Default"
|
|
|
@ -14,6 +14,6 @@ DeleteFile("$(WorkspaceDir)/src/ClassA2.bf")
|
||||||
# File race condition
|
# File race condition
|
||||||
Sleep(2000)
|
Sleep(2000)
|
||||||
|
|
||||||
StepOver()
|
RunWithStep()
|
||||||
StepOver()
|
StepOver()
|
||||||
AssertEvalEquals("a", "19")
|
AssertEvalEquals("a", "19")
|
|
@ -16,6 +16,6 @@ DeleteFile("$(WorkspaceDir)/src/ClassA2.bf")
|
||||||
# File race condition
|
# File race condition
|
||||||
Sleep(2000)
|
Sleep(2000)
|
||||||
|
|
||||||
StepOver()
|
RunWithStep()
|
||||||
StepOver()
|
StepOver()
|
||||||
AssertEvalEquals("a", "19")
|
AssertEvalEquals("a", "19")
|
|
@ -2,6 +2,7 @@ FileVersion = 1
|
||||||
|
|
||||||
[Project]
|
[Project]
|
||||||
Name = "IDETest"
|
Name = "IDETest"
|
||||||
|
TargetType = "BeefWindowsApplication"
|
||||||
StartupObject = "IDETest.Program"
|
StartupObject = "IDETest.Program"
|
||||||
|
|
||||||
[Configs.Debug.Win64]
|
[Configs.Debug.Win64]
|
||||||
|
|
|
@ -5,6 +5,9 @@ RunWithCompiling()
|
||||||
|
|
||||||
ToggleCommentAt("ClassC_0")
|
ToggleCommentAt("ClassC_0")
|
||||||
ToggleCommentAt("DoTest0_Body")
|
ToggleCommentAt("DoTest0_Body")
|
||||||
|
|
||||||
|
Stop()
|
||||||
|
|
||||||
Compile()
|
Compile()
|
||||||
|
|
||||||
# DoTest0
|
# DoTest0
|
||||||
|
|
|
@ -9,6 +9,7 @@ ToggleCommentAt("Test01_mA2")
|
||||||
SetExpectError("data changes")
|
SetExpectError("data changes")
|
||||||
Compile()
|
Compile()
|
||||||
ExpectError()
|
ExpectError()
|
||||||
|
|
||||||
StepOver()
|
StepOver()
|
||||||
StepOver()
|
StepOver()
|
||||||
Compile()
|
Compile()
|
||||||
|
|
|
@ -21,12 +21,11 @@ ToggleCommentAt("IHot_IHotB")
|
||||||
ToggleCommentAt("HotTester_TestIHotB")
|
ToggleCommentAt("HotTester_TestIHotB")
|
||||||
Compile()
|
Compile()
|
||||||
|
|
||||||
|
Stop()
|
||||||
|
|
||||||
# Steps out
|
# Steps out
|
||||||
StepOver()
|
StepOver()
|
||||||
|
|
||||||
# We need an extra step for Win32 for stack adjustment...
|
|
||||||
if (platform == "Win32") StepOver()
|
|
||||||
|
|
||||||
StepInto()
|
StepInto()
|
||||||
StepOver()
|
StepOver()
|
||||||
StepOver()
|
StepOver()
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This test fails on Win32 currently
|
||||||
|
if (platform != "Win64") Stop()
|
||||||
|
|
||||||
ShowFile("src/HotSwap_TLS.bf")
|
ShowFile("src/HotSwap_TLS.bf")
|
||||||
GotoText("//Test_Start")
|
GotoText("//Test_Start")
|
||||||
ToggleBreakpoint()
|
ToggleBreakpoint()
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This test fails on Win32 currently
|
||||||
|
if (platform != "Win64") Stop()
|
||||||
|
|
||||||
# Tests that even when removing an old virtual method, adding a new one, and then
|
# Tests that even when removing an old virtual method, adding a new one, and then
|
||||||
# adding back a method with the same name as the old one, we can call this new
|
# adding back a method with the same name as the old one, we can call this new
|
||||||
# method using an old virtual call
|
# method using an old virtual call
|
||||||
|
|
|
@ -11,4 +11,8 @@ StepOver()
|
||||||
AssertEvalEquals("argA", "11")
|
AssertEvalEquals("argA", "11")
|
||||||
|
|
||||||
StepOut()
|
StepOut()
|
||||||
|
|
||||||
|
# For LLVM generation, there's an extra step required here
|
||||||
|
if (optlevel != "Og+") StepOver()
|
||||||
|
|
||||||
AssertEvalEquals("c", "13")
|
AssertEvalEquals("c", "13")
|
|
@ -75,6 +75,8 @@ RunToCursor()
|
||||||
AssertEvalEquals("threadNum", "2")
|
AssertEvalEquals("threadNum", "2")
|
||||||
AssertEvalEquals("i", "9")
|
AssertEvalEquals("i", "9")
|
||||||
|
|
||||||
|
Stop()
|
||||||
|
|
||||||
# Set up the StepOut test
|
# Set up the StepOut test
|
||||||
StepInto()
|
StepInto()
|
||||||
StepOver()
|
StepOver()
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
# This test fails on Win32 currently
|
||||||
|
if (platform != "Win64") Stop()
|
||||||
|
|
||||||
# This test ensure that other threads continue to execute while we execute a method in the debugger
|
# This test ensure that other threads continue to execute while we execute a method in the debugger
|
||||||
# and it tests that we can execute methods on threads other than those which we had originally stopped on
|
# and it tests that we can execute methods on threads other than those which we had originally stopped on
|
||||||
|
|
||||||
|
@ -21,6 +24,7 @@ SelectThread("")
|
||||||
SelectCallStackWithStr(".DoTest()")
|
SelectCallStackWithStr(".DoTest()")
|
||||||
AssertEvalEquals("ca.mA", "9")
|
AssertEvalEquals("ca.mA", "9")
|
||||||
AssertEvalEquals("sVal1", "0")
|
AssertEvalEquals("sVal1", "0")
|
||||||
|
|
||||||
AssertEvalEquals("ca.GetValWithWait()", "9")
|
AssertEvalEquals("ca.GetValWithWait()", "9")
|
||||||
AssertEvalEquals("sVal1", "1")
|
AssertEvalEquals("sVal1", "1")
|
||||||
Continue()
|
Continue()
|
||||||
|
|
|
@ -16,7 +16,6 @@ AssertEvalEquals("us.mInnerB.mInnerA.mInt1", "23")
|
||||||
|
|
||||||
StepOut()
|
StepOut()
|
||||||
StepOver()
|
StepOver()
|
||||||
StepOver()
|
|
||||||
StepInto()
|
StepInto()
|
||||||
StepOver()
|
StepOver()
|
||||||
StepOver()
|
StepOver()
|
||||||
|
|
|
@ -85,6 +85,7 @@ namespace IDETest
|
||||||
|
|
||||||
static void DoTest0()
|
static void DoTest0()
|
||||||
{
|
{
|
||||||
|
//PrintF("Hey!\n");
|
||||||
/*DoTest0_Body
|
/*DoTest0_Body
|
||||||
ClassC cc = scope .();
|
ClassC cc = scope .();
|
||||||
int a0 = cc.MethodA0();
|
int a0 = cc.MethodA0();
|
||||||
|
|
|
@ -233,7 +233,8 @@ namespace Hey.Dude.Bro
|
||||||
}
|
}
|
||||||
|
|
||||||
//PrintF("%ld\n", foo((int32*)&l, &l));
|
//PrintF("%ld\n", foo((int32*)&l, &l));
|
||||||
return foo((int32*)&l, &l);
|
//return foo((int32*)&l, &l);
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
class Snorf
|
class Snorf
|
||||||
{
|
{
|
||||||
|
int mA;
|
||||||
|
|
||||||
struct Bloog
|
struct Bloog
|
||||||
{
|
{
|
||||||
int mA;
|
int mA;
|
||||||
|
|
|
@ -80,7 +80,6 @@ class ClassF : ClassE
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[NoDiscard("Use this value!")]
|
[NoDiscard("Use this value!")]
|
||||||
struct TestStruct
|
struct TestStruct
|
||||||
{
|
{
|
||||||
|
@ -102,9 +101,46 @@ class Blurg
|
||||||
PrintF("Poofs2!\n");
|
PrintF("Poofs2!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Hey()
|
static void Test0()
|
||||||
{
|
{
|
||||||
Snorf sn = scope .();
|
Snorf sn = scope .();
|
||||||
|
int a = 124;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void DoRecurse(int depth, ref int val)
|
||||||
|
{
|
||||||
|
Thread.Sleep(1);
|
||||||
|
++val;
|
||||||
|
if (val < 5)
|
||||||
|
{
|
||||||
|
DoRecurse(depth + 1, ref val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void VoidCall()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetInt()
|
||||||
|
{
|
||||||
|
return 123;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Hey()
|
||||||
|
{
|
||||||
|
VoidCall();
|
||||||
|
int val0 = GetInt();
|
||||||
|
|
||||||
|
Blurg bl = scope .();
|
||||||
|
int val = 0;
|
||||||
|
bl.DoRecurse(0, ref val);
|
||||||
|
|
||||||
|
Test0();
|
||||||
|
Test0();
|
||||||
|
Test0();
|
||||||
|
Test0();
|
||||||
|
|
||||||
Result<void*> voidPtrResult = default;
|
Result<void*> voidPtrResult = default;
|
||||||
|
|
||||||
|
|
|
@ -132,17 +132,16 @@ namespace IDE
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let targetCompleteCmd = new IDEApp.TargetCompletedCmd(project);
|
||||||
if (didCommands)
|
if (didCommands)
|
||||||
{
|
{
|
||||||
mScriptManager.QueueCommands(scope String()..AppendF("%targetComplete {}", project.mProjectName), targetName, .NoLines);
|
mScriptManager.QueueCommands(scope String()..AppendF("%targetComplete {}", project.mProjectName), targetName, .NoLines);
|
||||||
|
|
||||||
let targetCompleteCmd = new IDEApp.TargetCompletedCmd(project);
|
|
||||||
targetCompleteCmd.mIsReady = false;
|
targetCompleteCmd.mIsReady = false;
|
||||||
gApp.mExecutionQueue.Add(targetCompleteCmd);
|
|
||||||
project.mNeedsTargetRebuild = true;
|
project.mNeedsTargetRebuild = true;
|
||||||
}
|
}
|
||||||
|
gApp.mExecutionQueue.Add(targetCompleteCmd);
|
||||||
|
|
||||||
return didCommands ? .HadCommands : .Failed;
|
return didCommands ? .HadCommands : .NoCommands;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QueueProjectGNULink(Project project, String targetPath, Workspace.Options workspaceOptions, Project.Options options, String objectsArg)
|
bool QueueProjectGNULink(Project project, String targetPath, Workspace.Options workspaceOptions, Project.Options options, String objectsArg)
|
||||||
|
@ -558,6 +557,15 @@ namespace IDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (depProject.mGeneralOptions.mTargetType == .BeefLib)
|
||||||
|
{
|
||||||
|
let depProjectOptions = gApp.GetCurProjectOptions(depProject);
|
||||||
|
var linkFlags = scope String();
|
||||||
|
gApp.ResolveConfigString(workspaceOptions, depProject, depProjectOptions, depProjectOptions.mBuildOptions.mOtherLinkFlags, "link flags", linkFlags);
|
||||||
|
if (!linkFlags.IsWhiteSpace)
|
||||||
|
linkLine.Append(linkFlags, " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*String depLibTargetPath = scope String();
|
/*String depLibTargetPath = scope String();
|
||||||
ResolveConfigString(depProject, depOptions, "$(TargetPath)", error, depLibTargetPath);
|
ResolveConfigString(depProject, depOptions, "$(TargetPath)", error, depLibTargetPath);
|
||||||
|
@ -901,12 +909,15 @@ namespace IDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (QueueProjectCustomBuildCommands(project, targetPath, runAfter ? options.mBuildOptions.mBuildCommandsOnRun : options.mBuildOptions.mBuildCommandsOnCompile, options.mBuildOptions.mPostBuildCmds))
|
if (hotProject == null)
|
||||||
{
|
{
|
||||||
case .NoCommands:
|
switch (QueueProjectCustomBuildCommands(project, targetPath, runAfter ? options.mBuildOptions.mBuildCommandsOnRun : options.mBuildOptions.mBuildCommandsOnCompile, options.mBuildOptions.mPostBuildCmds))
|
||||||
case .HadCommands:
|
{
|
||||||
case .Failed:
|
case .NoCommands:
|
||||||
completedCompileCmd.mFailed = true;
|
case .HadCommands:
|
||||||
|
case .Failed:
|
||||||
|
completedCompileCmd.mFailed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (project.mGeneralOptions.mTargetType == .CustomBuild)
|
if (project.mGeneralOptions.mTargetType == .CustomBuild)
|
||||||
|
|
|
@ -368,6 +368,10 @@ namespace IDE
|
||||||
class StartDebugCmd : ExecutionCmd
|
class StartDebugCmd : ExecutionCmd
|
||||||
{
|
{
|
||||||
public bool mWasCompiled;
|
public bool mWasCompiled;
|
||||||
|
|
||||||
|
public this()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TargetCompletedCmd : ExecutionCmd
|
public class TargetCompletedCmd : ExecutionCmd
|
||||||
|
@ -3716,6 +3720,8 @@ namespace IDE
|
||||||
return;
|
return;
|
||||||
if (mHotResolveState != .None)
|
if (mHotResolveState != .None)
|
||||||
return;
|
return;
|
||||||
|
if (IsCompiling)
|
||||||
|
return;
|
||||||
|
|
||||||
if (mWorkspace.mProjects.IsEmpty)
|
if (mWorkspace.mProjects.IsEmpty)
|
||||||
{
|
{
|
||||||
|
@ -3765,6 +3771,13 @@ namespace IDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[IDECommand]
|
||||||
|
void RunWithStep()
|
||||||
|
{
|
||||||
|
mTargetStartWithStep = true;
|
||||||
|
CompileAndRun();
|
||||||
|
}
|
||||||
|
|
||||||
[IDECommand]
|
[IDECommand]
|
||||||
void StepInto()
|
void StepInto()
|
||||||
{
|
{
|
||||||
|
@ -3778,8 +3791,7 @@ namespace IDE
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mTargetStartWithStep = true;
|
RunWithStep();
|
||||||
CompileAndRun();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3802,8 +3814,7 @@ namespace IDE
|
||||||
mRunTimingProfileId = Profiler.StartSampling("RunTiming");
|
mRunTimingProfileId = Profiler.StartSampling("RunTiming");
|
||||||
}
|
}
|
||||||
|
|
||||||
mTargetStartWithStep = true;
|
RunWithStep();
|
||||||
CompileAndRun();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4166,7 +4177,7 @@ namespace IDE
|
||||||
ShowTab(panel, label, false, setFocus);
|
ShowTab(panel, label, false, setFocus);
|
||||||
if (setFocus)
|
if (setFocus)
|
||||||
panel.FocusForKeyboard();
|
panel.FocusForKeyboard();
|
||||||
if (!panel.mWidgetWindow.mHasFocus)
|
if ((!panel.mWidgetWindow.mHasFocus) && (!mRunningTestScript))
|
||||||
panel.mWidgetWindow.SetForeground();
|
panel.mWidgetWindow.SetForeground();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5559,7 +5570,7 @@ namespace IDE
|
||||||
//sourceViewPanel.QueueFullRefresh(true);
|
//sourceViewPanel.QueueFullRefresh(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((sourceViewPanel.mWidgetWindow != null) && (!HasModalDialogs()))
|
if ((sourceViewPanel.mWidgetWindow != null) && (!HasModalDialogs()) && (!mRunningTestScript))
|
||||||
sourceViewPanel.mWidgetWindow.SetForeground();
|
sourceViewPanel.mWidgetWindow.SetForeground();
|
||||||
sourceViewPanelTab.Activate(setFocus);
|
sourceViewPanelTab.Activate(setFocus);
|
||||||
sourceViewPanelTab.mTabbedView.FinishTabAnim();
|
sourceViewPanelTab.mTabbedView.FinishTabAnim();
|
||||||
|
@ -7171,6 +7182,13 @@ namespace IDE
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool buildFailed = false;
|
||||||
|
if ((mBuildContext != null) && (mBuildContext.Failed))
|
||||||
|
buildFailed = true;
|
||||||
|
let buildCompleteCmd = GetBuildCompletedCmd();
|
||||||
|
if ((buildCompleteCmd != null) && (buildCompleteCmd.mFailed))
|
||||||
|
buildFailed = true;
|
||||||
|
|
||||||
bool canExecuteNext = false;
|
bool canExecuteNext = false;
|
||||||
int32 parallelExecutionCount = 16;
|
int32 parallelExecutionCount = 16;
|
||||||
if ((mExecutionQueue.Count > 0) && (mExecutionInstances.Count < parallelExecutionCount))
|
if ((mExecutionQueue.Count > 0) && (mExecutionInstances.Count < parallelExecutionCount))
|
||||||
|
@ -7202,6 +7220,7 @@ namespace IDE
|
||||||
#endif
|
#endif
|
||||||
if ((next is ProcessBfCompileCmd) && (mBfBuildCompiler.HasQueuedCommands() || (waitForBuildClang)))
|
if ((next is ProcessBfCompileCmd) && (mBfBuildCompiler.HasQueuedCommands() || (waitForBuildClang)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/*if (next is BuildCompletedCmd)
|
/*if (next is BuildCompletedCmd)
|
||||||
{
|
{
|
||||||
if (mBuildContext != null)
|
if (mBuildContext != null)
|
||||||
|
@ -7279,19 +7298,25 @@ namespace IDE
|
||||||
}
|
}
|
||||||
else if (next is TargetCompletedCmd)
|
else if (next is TargetCompletedCmd)
|
||||||
{
|
{
|
||||||
var targetCompletedCmd = (TargetCompletedCmd)next;
|
if (!buildFailed)
|
||||||
targetCompletedCmd.mProject.mNeedsTargetRebuild = false;
|
{
|
||||||
targetCompletedCmd.mProject.mForceCustomCommands = false;
|
var targetCompletedCmd = (TargetCompletedCmd)next;
|
||||||
|
targetCompletedCmd.mProject.mNeedsTargetRebuild = false;
|
||||||
|
targetCompletedCmd.mProject.mForceCustomCommands = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (next is StartDebugCmd)
|
else if (next is StartDebugCmd)
|
||||||
{
|
{
|
||||||
var startDebugCmd = (StartDebugCmd)next;
|
if (!buildFailed)
|
||||||
if (DebugProject(startDebugCmd.mWasCompiled))
|
{
|
||||||
{
|
var startDebugCmd = (StartDebugCmd)next;
|
||||||
OutputLine("Debugger started");
|
if (DebugProject(startDebugCmd.mWasCompiled))
|
||||||
}
|
{
|
||||||
else
|
OutputLine("Debugger started");
|
||||||
OutputLine("Failed to start debugger");
|
}
|
||||||
|
else
|
||||||
|
OutputLine("Failed to start debugger");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (next is ExecutionQueueCmd)
|
else if (next is ExecutionQueueCmd)
|
||||||
{
|
{
|
||||||
|
@ -7319,11 +7344,8 @@ namespace IDE
|
||||||
if (!completedCompileCmd.mFailed)
|
if (!completedCompileCmd.mFailed)
|
||||||
mDepClang.mDoDependencyCheck = false;
|
mDepClang.mDoDependencyCheck = false;
|
||||||
#endif
|
#endif
|
||||||
if (mBuildContext != null)
|
if (buildFailed)
|
||||||
{
|
buildCompletedCmd.mFailed = true;
|
||||||
if (mBuildContext.Failed)
|
|
||||||
buildCompletedCmd.mFailed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
CompileResult(buildCompletedCmd.mHotProjectName, !buildCompletedCmd.mFailed);
|
CompileResult(buildCompletedCmd.mHotProjectName, !buildCompletedCmd.mFailed);
|
||||||
|
|
||||||
|
@ -8045,6 +8067,22 @@ namespace IDE
|
||||||
newString = options.mDebugOptions.mCommandArguments;
|
newString = options.mDebugOptions.mCommandArguments;
|
||||||
case "WorkingDir":
|
case "WorkingDir":
|
||||||
newString = options.mDebugOptions.mWorkingDirectory;
|
newString = options.mDebugOptions.mWorkingDirectory;
|
||||||
|
case "TargetDir":
|
||||||
|
{
|
||||||
|
if (project.IsDebugSession)
|
||||||
|
{
|
||||||
|
let targetPath = scope:ReplaceBlock String();
|
||||||
|
DoResolveConfigString(workspaceOptions, project, options, options.mBuildOptions.mTargetName, error, targetPath);
|
||||||
|
newString = scope:ReplaceBlock String();
|
||||||
|
Path.GetDirectoryPath(targetPath, newString);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
String targetDir = scope String();
|
||||||
|
DoResolveConfigString(workspaceOptions, project, options, options.mBuildOptions.mTargetDirectory, error, targetDir);
|
||||||
|
newString = scope:ReplaceBlock String();
|
||||||
|
Path.GetAbsolutePath(targetDir, project.mProjectDir, newString);
|
||||||
|
}
|
||||||
case "TargetPath":
|
case "TargetPath":
|
||||||
{
|
{
|
||||||
if (project.IsDebugSession)
|
if (project.IsDebugSession)
|
||||||
|
@ -8087,24 +8125,30 @@ namespace IDE
|
||||||
//Debug.WriteLine("BuildDir: {0}", newString);
|
//Debug.WriteLine("BuildDir: {0}", newString);
|
||||||
case "LinkFlags":
|
case "LinkFlags":
|
||||||
newString = scope:ReplaceBlock String();
|
newString = scope:ReplaceBlock String();
|
||||||
#if BF_PLATFORM_WINDOWS
|
|
||||||
String rtName = scope String();
|
if ((project.mGeneralOptions.mTargetType == .BeefConsoleApplication) ||
|
||||||
String dbgName = scope String();
|
(project.mGeneralOptions.mTargetType == .BeefWindowsApplication) ||
|
||||||
BuildContext.GetRtLibNames(workspaceOptions, options, false, rtName, dbgName);
|
(project.mGeneralOptions.mTargetType == .BeefDynLib))
|
||||||
newString.Append(rtName);
|
|
||||||
if (!dbgName.IsEmpty)
|
|
||||||
newString.Append(" ", dbgName);
|
|
||||||
switch (workspaceOptions.mAllocType)
|
|
||||||
{
|
{
|
||||||
case .JEMalloc:
|
#if BF_PLATFORM_WINDOWS
|
||||||
newString.Append(" jemalloc.lib");
|
String rtName = scope String();
|
||||||
case .TCMalloc:
|
String dbgName = scope String();
|
||||||
newString.Append(" tcmalloc.lib");
|
BuildContext.GetRtLibNames(workspaceOptions, options, false, rtName, dbgName);
|
||||||
default:
|
newString.Append(rtName);
|
||||||
}
|
if (!dbgName.IsEmpty)
|
||||||
|
newString.Append(" ", dbgName);
|
||||||
|
switch (workspaceOptions.mAllocType)
|
||||||
|
{
|
||||||
|
case .JEMalloc:
|
||||||
|
newString.Append(" jemalloc.lib");
|
||||||
|
case .TCMalloc:
|
||||||
|
newString.Append(" tcmalloc.lib");
|
||||||
|
default:
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
newString.Append("./libBeefRT_d.so -Wl,-rpath -Wl,.");
|
newString.Append("./libBeefRT_d.so -Wl,-rpath -Wl,.");
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
case "VSToolPath":
|
case "VSToolPath":
|
||||||
if (workspaceOptions.mMachineType.PtrSize == 4)
|
if (workspaceOptions.mMachineType.PtrSize == 4)
|
||||||
newString = gApp.mSettings.mVSSettings.mBin32Path;
|
newString = gApp.mSettings.mVSSettings.mBin32Path;
|
||||||
|
@ -8895,6 +8939,8 @@ namespace IDE
|
||||||
{
|
{
|
||||||
if (AreTestsRunning())
|
if (AreTestsRunning())
|
||||||
return false;
|
return false;
|
||||||
|
if (IsCompiling)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (!mExecutionQueue.IsEmpty)
|
if (!mExecutionQueue.IsEmpty)
|
||||||
{
|
{
|
||||||
|
@ -8957,6 +9003,8 @@ namespace IDE
|
||||||
|
|
||||||
protected bool Compile(CompileKind compileKind = .Normal, Project hotProject = null)
|
protected bool Compile(CompileKind compileKind = .Normal, Project hotProject = null)
|
||||||
{
|
{
|
||||||
|
Debug.Assert(mBuildContext == null);
|
||||||
|
|
||||||
if (mDbgCompileDump)
|
if (mDbgCompileDump)
|
||||||
{
|
{
|
||||||
mDbgCompileIdx++;
|
mDbgCompileIdx++;
|
||||||
|
@ -9588,13 +9636,15 @@ namespace IDE
|
||||||
|
|
||||||
//
|
//
|
||||||
{
|
{
|
||||||
|
BFWindow.Flags flags = .Border | .ThickFrame | .Resizable | .SysMenu |
|
||||||
|
.Caption | .Minimize | .Maximize | .QuitOnClose | .Menu;
|
||||||
|
if (mRunningTestScript)
|
||||||
|
flags |= .NoActivate;
|
||||||
|
|
||||||
scope AutoBeefPerf("IDEApp.Init:CreateMainWindow");
|
scope AutoBeefPerf("IDEApp.Init:CreateMainWindow");
|
||||||
mMainWindow = new WidgetWindow(null, "Beef IDE", (int32)mRequestedWindowRect.mX,
|
mMainWindow = new WidgetWindow(null, "Beef IDE", (int32)mRequestedWindowRect.mX,
|
||||||
(int32)mRequestedWindowRect.mY, (int32)mRequestedWindowRect.mWidth, (int32)mRequestedWindowRect.mHeight,
|
(int32)mRequestedWindowRect.mY, (int32)mRequestedWindowRect.mWidth, (int32)mRequestedWindowRect.mHeight,
|
||||||
BFWindow.Flags.Border | BFWindow.Flags.ThickFrame | BFWindow.Flags.Resizable | BFWindow.Flags.SysMenu |
|
flags, mMainFrame);
|
||||||
BFWindow.Flags.Caption | BFWindow.Flags.Minimize | BFWindow.Flags.Maximize | BFWindow.Flags.QuitOnClose |
|
|
||||||
BFWindow.Flags.Menu,
|
|
||||||
mMainFrame);
|
|
||||||
}
|
}
|
||||||
UpdateTitle();
|
UpdateTitle();
|
||||||
mMainWindow.SetMinimumSize(GS!(480), GS!(360));
|
mMainWindow.SetMinimumSize(GS!(480), GS!(360));
|
||||||
|
@ -10670,7 +10720,7 @@ namespace IDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!HasModalDialogs())
|
if ((!HasModalDialogs()) && (!mRunningTestScript))
|
||||||
mMainWindow.SetForeground();
|
mMainWindow.SetForeground();
|
||||||
|
|
||||||
if (mRunTimingProfileId != 0)
|
if (mRunTimingProfileId != 0)
|
||||||
|
|
|
@ -186,6 +186,7 @@ namespace IDE
|
||||||
{
|
{
|
||||||
DeleteAndClearItems!(mCmdList);
|
DeleteAndClearItems!(mCmdList);
|
||||||
mFailed = false;
|
mFailed = false;
|
||||||
|
mCurCmd = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void QueueCommands(StreamReader streamReader, StringView filePath, CmdFlags flags)
|
public void QueueCommands(StreamReader streamReader, StringView filePath, CmdFlags flags)
|
||||||
|
@ -466,6 +467,9 @@ namespace IDE
|
||||||
methodName = cmd;
|
methodName = cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mFailed)
|
||||||
|
return;
|
||||||
|
|
||||||
Target curTarget = mRoot;
|
Target curTarget = mRoot;
|
||||||
for (var cmdPart in methodName.Split('.'))
|
for (var cmdPart in methodName.Split('.'))
|
||||||
{
|
{
|
||||||
|
@ -574,6 +578,16 @@ namespace IDE
|
||||||
return gApp.mPlatformName;
|
return gApp.mPlatformName;
|
||||||
else if (token == "config")
|
else if (token == "config")
|
||||||
return gApp.mConfigName;
|
return gApp.mConfigName;
|
||||||
|
else if (token == "optlevel")
|
||||||
|
{
|
||||||
|
var workspaceOptions = gApp.GetCurWorkspaceOptions();
|
||||||
|
if (workspaceOptions != null)
|
||||||
|
{
|
||||||
|
String str = new:tempAlloc .();
|
||||||
|
workspaceOptions.mBfOptimizationLevel.ToString(str);
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -665,7 +679,7 @@ namespace IDE
|
||||||
if (doExec)
|
if (doExec)
|
||||||
{
|
{
|
||||||
Exec(mCurCmd.mCmd);
|
Exec(mCurCmd.mCmd);
|
||||||
mCurCmd.mExecIdx++;
|
mCurCmd?.mExecIdx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mCmdList.IsEmpty)
|
if (mCmdList.IsEmpty)
|
||||||
|
@ -888,7 +902,7 @@ namespace IDE
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gApp.mBfResolveCompiler.IsPerformingBackgroundOperation())
|
if ((gApp.mBfResolveCompiler != null) && (gApp.mBfResolveCompiler.IsPerformingBackgroundOperation()))
|
||||||
return false;
|
return false;
|
||||||
if (gApp.[Friend]mDeferredOpen != .None)
|
if (gApp.[Friend]mDeferredOpen != .None)
|
||||||
return false;
|
return false;
|
||||||
|
@ -910,6 +924,9 @@ namespace IDE
|
||||||
if (!gApp.[Friend]mExecutionInstances.IsEmpty)
|
if (!gApp.[Friend]mExecutionInstances.IsEmpty)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (gApp.mDebugger == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
if ((!gApp.AreTestsRunning()) && (!gApp.mDebugger.HasPendingDebugLoads()) &&
|
if ((!gApp.AreTestsRunning()) && (!gApp.mDebugger.HasPendingDebugLoads()) &&
|
||||||
((gApp.mExecutionPaused) || (!gApp.mDebugger.mIsRunning)))
|
((gApp.mExecutionPaused) || (!gApp.mDebugger.mIsRunning)))
|
||||||
{
|
{
|
||||||
|
@ -929,6 +946,9 @@ namespace IDE
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (runState == .Running_ToTempBreakpoint)
|
||||||
|
return false;
|
||||||
|
|
||||||
Debug.Assert((runState == .NotStarted) || (runState == .Paused) || (runState == .Running_ToTempBreakpoint) ||
|
Debug.Assert((runState == .NotStarted) || (runState == .Paused) || (runState == .Running_ToTempBreakpoint) ||
|
||||||
(runState == .Exception) || (runState == .Breakpoint) || (runState == .Terminated));
|
(runState == .Exception) || (runState == .Breakpoint) || (runState == .Terminated));
|
||||||
/*if (runState == .Paused)
|
/*if (runState == .Paused)
|
||||||
|
@ -1133,6 +1153,62 @@ namespace IDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Project GetProject()
|
||||||
|
{
|
||||||
|
if (mScriptManager.mProjectName == null)
|
||||||
|
{
|
||||||
|
mScriptManager.Fail("Only usable in the context of a project");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
let project = gApp.mWorkspace.FindProject(mScriptManager.mProjectName);
|
||||||
|
if (project == null)
|
||||||
|
{
|
||||||
|
mScriptManager.Fail("Unable to find project '{}'", mScriptManager.mProjectName);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return project;
|
||||||
|
}
|
||||||
|
|
||||||
|
[IDECommand]
|
||||||
|
public void CopyToDependents(String srcPath)
|
||||||
|
{
|
||||||
|
let depProject = GetProject();
|
||||||
|
if (depProject == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (let checkProject in gApp.mWorkspace.mProjects)
|
||||||
|
{
|
||||||
|
if (checkProject.HasDependency(depProject.mProjectName))
|
||||||
|
{
|
||||||
|
String fileName = scope .();
|
||||||
|
Path.GetFileName(srcPath, fileName);
|
||||||
|
|
||||||
|
List<String> targetPaths = scope .();
|
||||||
|
defer ClearAndDeleteItems(targetPaths);
|
||||||
|
|
||||||
|
let workspaceOptions = gApp.GetCurWorkspaceOptions();
|
||||||
|
let options = gApp.GetCurProjectOptions(checkProject);
|
||||||
|
gApp.[Friend]GetTargetPaths(checkProject, workspaceOptions, options, targetPaths);
|
||||||
|
|
||||||
|
if (!targetPaths.IsEmpty)
|
||||||
|
{
|
||||||
|
String targetDirPath = scope .();
|
||||||
|
Path.GetDirectoryPath(targetPaths[0], targetDirPath);
|
||||||
|
|
||||||
|
String destPath = scope .();
|
||||||
|
Path.GetAbsolutePath(fileName, targetDirPath, destPath);
|
||||||
|
|
||||||
|
if (File.CopyIfNewer(srcPath, destPath) case .Err)
|
||||||
|
{
|
||||||
|
mScriptManager.Fail("Failed to copy file '{}' to '{}'", srcPath, destPath);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[IDECommand]
|
[IDECommand]
|
||||||
public void ExecuteRaw(String cmd)
|
public void ExecuteRaw(String cmd)
|
||||||
{
|
{
|
||||||
|
@ -1353,6 +1429,49 @@ namespace IDE
|
||||||
ScriptManager.sActiveManager.Fail("Failed to find stack frame containing string '{}'", str);
|
ScriptManager.sActiveManager.Fail("Failed to find stack frame containing string '{}'", str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool AssertRunning()
|
||||||
|
{
|
||||||
|
if (!gApp.mDebugger.mIsRunning)
|
||||||
|
{
|
||||||
|
mScriptManager.Fail("Expected target to be running");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AssertDebuggerPaused()
|
||||||
|
{
|
||||||
|
if (!gApp.mDebugger.mIsRunning)
|
||||||
|
{
|
||||||
|
mScriptManager.Fail("Expected target to be running");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!gApp.mDebugger.IsPaused())
|
||||||
|
{
|
||||||
|
mScriptManager.Fail("Expected target to be paused");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
[IDECommand]
|
||||||
|
public void StepInto()
|
||||||
|
{
|
||||||
|
if (!AssertDebuggerPaused())
|
||||||
|
return;
|
||||||
|
gApp.[Friend]StepInto();
|
||||||
|
}
|
||||||
|
|
||||||
|
[IDECommand]
|
||||||
|
public void StepOver()
|
||||||
|
{
|
||||||
|
if (!AssertDebuggerPaused())
|
||||||
|
return;
|
||||||
|
gApp.[Friend]StepOver();
|
||||||
|
}
|
||||||
|
|
||||||
[IDECommand]
|
[IDECommand]
|
||||||
public void SelectThread(String threadName)
|
public void SelectThread(String threadName)
|
||||||
{
|
{
|
||||||
|
@ -1948,7 +2067,7 @@ namespace IDE
|
||||||
[IDECommand]
|
[IDECommand]
|
||||||
public void Stop()
|
public void Stop()
|
||||||
{
|
{
|
||||||
ScriptManager.sActiveManager.Clear();
|
mScriptManager.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
[IDECommand]
|
[IDECommand]
|
||||||
|
|
|
@ -351,13 +351,21 @@ namespace IDE.ui
|
||||||
IDEUtils.FixFilePath(targetPath);
|
IDEUtils.FixFilePath(targetPath);
|
||||||
|
|
||||||
String workingDir = scope String();
|
String workingDir = scope String();
|
||||||
//
|
|
||||||
|
workingDir.Append(mWorkingDirCombo.Label);
|
||||||
|
if (Path.IsPathRooted(workingDir))
|
||||||
{
|
{
|
||||||
String relWorkingDir = scope String();
|
defer targetPath.Remove(0, targetPath.Length);
|
||||||
relWorkingDir.Append(mWorkingDirCombo.Label);
|
Path.GetAbsolutePath(targetPath, workingDir, targetPath);
|
||||||
if (!workingDir.IsWhiteSpace)
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String targetDir = scope .();
|
||||||
|
Path.GetDirectoryPath(targetPath, targetDir);
|
||||||
|
if (!targetDir.IsWhiteSpace)
|
||||||
{
|
{
|
||||||
Path.GetAbsolutePath(targetPath, relWorkingDir, workingDir);
|
defer workingDir.Remove(0, workingDir.Length);
|
||||||
|
Path.GetAbsolutePath(workingDir, targetDir, workingDir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2325,7 +2325,11 @@ namespace IDE.ui
|
||||||
|
|
||||||
public void FocusEdit()
|
public void FocusEdit()
|
||||||
{
|
{
|
||||||
GetActivePanel().mEditWidget.SetFocus();
|
let activePanel = GetActivePanel();
|
||||||
|
activePanel.mEditWidget.SetFocus();
|
||||||
|
|
||||||
|
if (!mWidgetWindow.mHasFocus)
|
||||||
|
EditGotFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SetFocus()
|
public override void SetFocus()
|
||||||
|
|
|
@ -687,7 +687,7 @@ int BeCOFFObject::DbgGetTypeId(BeDbgType* dbgType, bool doDefine)
|
||||||
outT.Write(*(int16*)&attr);
|
outT.Write(*(int16*)&attr);
|
||||||
outT.Write(func->mCvTypeId);
|
outT.Write(func->mCvTypeId);
|
||||||
if (isVirt)
|
if (isVirt)
|
||||||
outT.Write((int32)func->mVIndex);
|
outT.Write((int32)func->mVIndex * mBeModule->mContext->mPointerSize);
|
||||||
DbgEncodeString(outT, func->mName);
|
DbgEncodeString(outT, func->mName);
|
||||||
memberCount++;
|
memberCount++;
|
||||||
DbgTAlign();
|
DbgTAlign();
|
||||||
|
|
|
@ -93,6 +93,8 @@ BePointerType* BeContext::GetPointerTo(BeType* beType)
|
||||||
|
|
||||||
void BeContext::SetStructBody(BeStructType* structType, const SizedArrayImpl<BeType*>& types, bool packed)
|
void BeContext::SetStructBody(BeStructType* structType, const SizedArrayImpl<BeType*>& types, bool packed)
|
||||||
{
|
{
|
||||||
|
BF_ASSERT(structType->mMembers.IsEmpty());
|
||||||
|
|
||||||
int dataPos = 0;
|
int dataPos = 0;
|
||||||
for (auto& beType : types)
|
for (auto& beType : types)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2972,8 +2972,10 @@ BeFunction* BeModule::CreateFunction(BeFunctionType* funcType, BfIRLinkageType l
|
||||||
func->mLinkageType = linkageType;
|
func->mLinkageType = linkageType;
|
||||||
func->mParams.Resize(funcType->mParams.size());
|
func->mParams.Resize(funcType->mParams.size());
|
||||||
mFunctions.push_back(func);
|
mFunctions.push_back(func);
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
BF_ASSERT(mFunctionMap.TryAdd(name, func));
|
// It IS possible hit this, especially if we have multiple intrinsics mapping to 'malloc' for example
|
||||||
|
//BF_ASSERT(mFunctionMap.TryAdd(name, func));
|
||||||
#endif
|
#endif
|
||||||
return func;
|
return func;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1885,13 +1885,13 @@ public:
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void BfIRBuilder::CreateTypeDeclaration(BfType* type)
|
void BfIRBuilder::CreateTypeDeclaration(BfType* type, bool forceDefine)
|
||||||
{
|
{
|
||||||
bool wantDIData = DbgHasInfo() && (!type->IsUnspecializedType());
|
bool wantDIData = DbgHasInfo() && (!type->IsUnspecializedType());
|
||||||
|
|
||||||
// Types that don't have a proper 'defining module' need to be defined in every module they are used
|
// Types that don't have a proper 'defining module' need to be defined in every module they are used
|
||||||
bool isDefiningModule = (type->GetModule() == mModule) || (type->IsFunction());
|
bool isDefiningModule = (type->GetModule() == mModule) || (type->IsFunction());
|
||||||
bool wantsForwardDecl = !isDefiningModule;
|
bool wantsForwardDecl = !isDefiningModule && !forceDefine;
|
||||||
|
|
||||||
if (mModule->mExtensionCount != 0)
|
if (mModule->mExtensionCount != 0)
|
||||||
wantsForwardDecl = true;
|
wantsForwardDecl = true;
|
||||||
|
@ -2802,7 +2802,7 @@ void BfIRBuilder::CreateDbgTypeDefinition(BfType* type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BfIRBuilder::CreateTypeDefinition(BfType* type)
|
void BfIRBuilder::CreateTypeDefinition(BfType* type, bool forceDefine)
|
||||||
{
|
{
|
||||||
// This PopulateType is generally NOT needed, but here is a scenario in which it is:
|
// This PopulateType is generally NOT needed, but here is a scenario in which it is:
|
||||||
// ClassB derives from ClassA. ClassC uses ClassB. A method inside ClassA gets modified,
|
// ClassB derives from ClassA. ClassC uses ClassB. A method inside ClassA gets modified,
|
||||||
|
@ -2827,7 +2827,7 @@ void BfIRBuilder::CreateTypeDefinition(BfType* type)
|
||||||
DbgSetTypeSize(DbgGetType(type), BF_ALIGN(type->mSize, type->mAlign) * 8, type->mAlign * 8);
|
DbgSetTypeSize(DbgGetType(type), BF_ALIGN(type->mSize, type->mAlign) * 8, type->mAlign * 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wantsForwardDecl = !isDefiningModule;
|
bool wantsForwardDecl = !isDefiningModule && !forceDefine;
|
||||||
bool isPrimEnum = (type->IsEnum()) && (type->IsTypedPrimitive());
|
bool isPrimEnum = (type->IsEnum()) && (type->IsTypedPrimitive());
|
||||||
|
|
||||||
auto typeInstance = type->ToTypeInstance();
|
auto typeInstance = type->ToTypeInstance();
|
||||||
|
@ -3057,7 +3057,7 @@ void BfIRBuilder::ReplaceDITemporaryTypes()
|
||||||
if (mTypeMap[typeInstance] == BfIRPopulateType_Full)
|
if (mTypeMap[typeInstance] == BfIRPopulateType_Full)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
CreateTypeDefinition(typeInstance);
|
CreateTypeDefinition(typeInstance, false);
|
||||||
}
|
}
|
||||||
mDITemporaryTypes.Clear();
|
mDITemporaryTypes.Clear();
|
||||||
}
|
}
|
||||||
|
@ -3093,12 +3093,14 @@ void BfIRBuilder::PopulateType(BfType* type, BfIRPopulateType populateType)
|
||||||
|
|
||||||
if (curPopulateType >= populateType)
|
if (curPopulateType >= populateType)
|
||||||
return;
|
return;
|
||||||
|
if (curPopulateType == BfIRPopulateType_Full)
|
||||||
|
return;
|
||||||
|
|
||||||
auto typeInst = type->ToTypeInstance();
|
auto typeInst = type->ToTypeInstance();
|
||||||
|
|
||||||
if ((curPopulateType < BfIRPopulateType_Declaration) && (populateType >= BfIRPopulateType_Declaration))
|
if ((curPopulateType < BfIRPopulateType_Declaration) && (populateType >= BfIRPopulateType_Declaration))
|
||||||
{
|
{
|
||||||
CreateTypeDeclaration(type);
|
CreateTypeDeclaration(type, populateType == BfIRPopulateType_Full_ForceDefinition);
|
||||||
|
|
||||||
mTypeMap[type] = BfIRPopulateType_Declaration;
|
mTypeMap[type] = BfIRPopulateType_Declaration;
|
||||||
}
|
}
|
||||||
|
@ -3106,7 +3108,7 @@ void BfIRBuilder::PopulateType(BfType* type, BfIRPopulateType populateType)
|
||||||
if ((curPopulateType < populateType) && (populateType >= BfIRPopulateType_Eventually_Full))
|
if ((curPopulateType < populateType) && (populateType >= BfIRPopulateType_Eventually_Full))
|
||||||
{
|
{
|
||||||
mTypeMap[type] = BfIRPopulateType_Eventually_Full;
|
mTypeMap[type] = BfIRPopulateType_Eventually_Full;
|
||||||
CreateTypeDefinition(type);
|
CreateTypeDefinition(type, populateType == BfIRPopulateType_Full_ForceDefinition);
|
||||||
mTypeMap[type] = BfIRPopulateType_Full;
|
mTypeMap[type] = BfIRPopulateType_Full;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -836,7 +836,8 @@ enum BfIRPopulateType
|
||||||
BfIRPopulateType_Identity,
|
BfIRPopulateType_Identity,
|
||||||
BfIRPopulateType_Declaration,
|
BfIRPopulateType_Declaration,
|
||||||
BfIRPopulateType_Eventually_Full,
|
BfIRPopulateType_Eventually_Full,
|
||||||
BfIRPopulateType_Full
|
BfIRPopulateType_Full,
|
||||||
|
BfIRPopulateType_Full_ForceDefinition
|
||||||
};
|
};
|
||||||
|
|
||||||
class BfIRBuilder : public BfIRConstHolder
|
class BfIRBuilder : public BfIRConstHolder
|
||||||
|
@ -934,8 +935,8 @@ public:
|
||||||
BfIRMDNode CreateNamespaceScope(BfType* type, BfIRMDNode fileDIScope);
|
BfIRMDNode CreateNamespaceScope(BfType* type, BfIRMDNode fileDIScope);
|
||||||
String GetDebugTypeName(BfTypeInstance* typeInstance, bool includeOuterTypeName);
|
String GetDebugTypeName(BfTypeInstance* typeInstance, bool includeOuterTypeName);
|
||||||
void CreateDbgTypeDefinition(BfType* type);
|
void CreateDbgTypeDefinition(BfType* type);
|
||||||
void CreateTypeDeclaration(BfType* type);
|
void CreateTypeDeclaration(BfType* type, bool forceDefine);
|
||||||
void CreateTypeDefinition(BfType* type);
|
void CreateTypeDefinition(BfType* type, bool forceDefine);
|
||||||
void ReplaceDITemporaryTypes();
|
void ReplaceDITemporaryTypes();
|
||||||
void PushDbgLoc(BfTypeInstance* typeInst);
|
void PushDbgLoc(BfTypeInstance* typeInst);
|
||||||
BfIRPopulateType GetPopulateTypeState(BfType* type);
|
BfIRPopulateType GetPopulateTypeState(BfType* type);
|
||||||
|
|
|
@ -1118,10 +1118,10 @@ void BfModule::EnsureIRBuilder(bool dbgVerifyCodeGen)
|
||||||
// code as we walk the AST
|
// code as we walk the AST
|
||||||
//mBfIRBuilder->mDbgVerifyCodeGen = true;
|
//mBfIRBuilder->mDbgVerifyCodeGen = true;
|
||||||
if (
|
if (
|
||||||
(mModuleName == "vdata")
|
(mModuleName == "-")
|
||||||
|| (mModuleName == "System_Result_PTR_void")
|
//|| (mModuleName == "System_Internal")
|
||||||
//|| (mModuleName == "vdata")
|
//|| (mModuleName == "vdata")
|
||||||
|| (mModuleName == "Hey_Dude_Bro_TestClass")
|
//|| (mModuleName == "Hey_Dude_Bro_TestClass")
|
||||||
)
|
)
|
||||||
mBfIRBuilder->mDbgVerifyCodeGen = true;
|
mBfIRBuilder->mDbgVerifyCodeGen = true;
|
||||||
|
|
||||||
|
@ -4241,7 +4241,13 @@ BfIRValue BfModule::CreateTypeData(BfType* type, Dictionary<int, int>& usedStrin
|
||||||
|
|
||||||
BfTypeInstance* typeInstance = type->ToTypeInstance();
|
BfTypeInstance* typeInstance = type->ToTypeInstance();
|
||||||
|
|
||||||
|
// BfType* typeInstanceType = ResolveTypeDef(mCompiler->mReflectTypeInstanceTypeDef, BfPopulateType_Identity);
|
||||||
|
// mBfIRBuilder->PopulateType(typeInstanceType, BfIRPopulateType_Full_ForceDefinition);
|
||||||
|
// PopulateType(typeInstanceType);
|
||||||
|
|
||||||
BfType* typeInstanceType = ResolveTypeDef(mCompiler->mReflectTypeInstanceTypeDef);
|
BfType* typeInstanceType = ResolveTypeDef(mCompiler->mReflectTypeInstanceTypeDef);
|
||||||
|
mBfIRBuilder->PopulateType(typeInstanceType, BfIRPopulateType_Full_ForceDefinition);
|
||||||
|
|
||||||
if (typeInstanceType == NULL)
|
if (typeInstanceType == NULL)
|
||||||
{
|
{
|
||||||
AssertErrorState();
|
AssertErrorState();
|
||||||
|
@ -18900,7 +18906,7 @@ void BfModule::DoMethodDeclaration(BfMethodDeclaration* methodDeclaration, bool
|
||||||
isValid = true;
|
isValid = true;
|
||||||
}
|
}
|
||||||
else if ((genericParamInstance->mTypeConstraint->IsDelegate()) || (genericParamInstance->mTypeConstraint->IsFunction()) ||
|
else if ((genericParamInstance->mTypeConstraint->IsDelegate()) || (genericParamInstance->mTypeConstraint->IsFunction()) ||
|
||||||
((genericParamInstance != NULL) &&
|
((genericParamInstance != NULL) && (typeInstConstraint != NULL) &&
|
||||||
((typeInstConstraint->mTypeDef == mCompiler->mDelegateTypeDef) || (typeInstConstraint->mTypeDef == mCompiler->mFunctionTypeDef))))
|
((typeInstConstraint->mTypeDef == mCompiler->mDelegateTypeDef) || (typeInstConstraint->mTypeDef == mCompiler->mFunctionTypeDef))))
|
||||||
{
|
{
|
||||||
mCurMethodInstance->mHadGenericDelegateParams = true;
|
mCurMethodInstance->mHadGenericDelegateParams = true;
|
||||||
|
|
|
@ -166,9 +166,9 @@ bool BfModule::BuildGenericParams(BfType* resolvedTypeRef)
|
||||||
{
|
{
|
||||||
for (int paramIdx = startDefGenericParamIdx; paramIdx < (int)genericTypeInst->mTypeGenericArguments.size(); paramIdx++)
|
for (int paramIdx = startDefGenericParamIdx; paramIdx < (int)genericTypeInst->mTypeGenericArguments.size(); paramIdx++)
|
||||||
{
|
{
|
||||||
auto genericParamDef = typeDef->mGenericParamDefs[paramIdx];
|
|
||||||
auto genericParamInstance = genericTypeInst->mGenericParams[paramIdx];
|
auto genericParamInstance = genericTypeInst->mGenericParams[paramIdx];
|
||||||
ResolveGenericParamConstraints(genericParamInstance, typeDef->mGenericParamDefs, paramIdx);
|
ResolveGenericParamConstraints(genericParamInstance, typeDef->mGenericParamDefs, paramIdx);
|
||||||
|
auto genericParamDef = typeDef->mGenericParamDefs[paramIdx];
|
||||||
|
|
||||||
for (auto nameNode : genericParamDef->mNameNodes)
|
for (auto nameNode : genericParamDef->mNameNodes)
|
||||||
{
|
{
|
||||||
|
|
|
@ -811,7 +811,7 @@ int BfMethodInstance::DbgGetVirtualMethodNum()
|
||||||
vDataIdx += mVirtualTableIdx;
|
vDataIdx += mVirtualTableIdx;
|
||||||
}
|
}
|
||||||
if (vDataVal == -1)
|
if (vDataVal == -1)
|
||||||
vDataVal = vDataIdx * module->mSystem->mPtrSize;
|
vDataVal = vDataIdx;
|
||||||
}
|
}
|
||||||
return vDataVal;
|
return vDataVal;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4877,11 +4877,23 @@ void DbgModule::CommitHotTargetSections()
|
||||||
addr_target hotAddr = GetHotTargetAddress(hotTargetSection);
|
addr_target hotAddr = GetHotTargetAddress(hotTargetSection);
|
||||||
if (hotAddr != 0)
|
if (hotAddr != 0)
|
||||||
{
|
{
|
||||||
void* imageDestPtr = mOrigImageData->mBlocks[0] + hotTargetSection->mImageOffset;
|
// void* imageDestPtr = mOrigImageData->mBlocks[0] + hotTargetSection->mImageOffset;
|
||||||
if (hotTargetSection->mData != NULL)
|
// if (hotTargetSection->mData != NULL)
|
||||||
memcpy(imageDestPtr, hotTargetSection->mData, hotTargetSection->mDataSize);
|
// memcpy(imageDestPtr, hotTargetSection->mData, hotTargetSection->mDataSize);
|
||||||
else
|
// else
|
||||||
|
// memset(imageDestPtr, 0, hotTargetSection->mDataSize);
|
||||||
|
|
||||||
|
BF_ASSERT(mOrigImageData->mAddr != 0);
|
||||||
|
|
||||||
|
void* imageDestPtr = hotTargetSection->mData;
|
||||||
|
bool isTemp = false;
|
||||||
|
if (imageDestPtr == NULL)
|
||||||
|
{
|
||||||
|
imageDestPtr = new uint8[hotTargetSection->mDataSize];
|
||||||
memset(imageDestPtr, 0, hotTargetSection->mDataSize);
|
memset(imageDestPtr, 0, hotTargetSection->mDataSize);
|
||||||
|
isTemp = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (hotTargetSection->mCanExecute)
|
if (hotTargetSection->mCanExecute)
|
||||||
{
|
{
|
||||||
bool success = mDebugger->WriteInstructions(hotAddr, imageDestPtr, hotTargetSection->mDataSize);
|
bool success = mDebugger->WriteInstructions(hotAddr, imageDestPtr, hotTargetSection->mDataSize);
|
||||||
|
@ -4892,6 +4904,9 @@ void DbgModule::CommitHotTargetSections()
|
||||||
bool success = mDebugger->WriteMemory(hotAddr, imageDestPtr, hotTargetSection->mDataSize);
|
bool success = mDebugger->WriteMemory(hotAddr, imageDestPtr, hotTargetSection->mDataSize);
|
||||||
BF_ASSERT(success);
|
BF_ASSERT(success);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isTemp)
|
||||||
|
delete imageDestPtr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5664,7 +5679,8 @@ bool DbgModule::ReadCOFF(DataStream* stream, bool isHotObjectFile)
|
||||||
mDebugger->ReserveHotTargetMemory(needHotTargetMemory);
|
mDebugger->ReserveHotTargetMemory(needHotTargetMemory);
|
||||||
|
|
||||||
// '0' address is temporary
|
// '0' address is temporary
|
||||||
mOrigImageData = new DbgModuleMemoryCache(0, NULL, needHotTargetMemory, true);
|
//mOrigImageData = new DbgModuleMemoryCache(0, NULL, needHotTargetMemory, true);
|
||||||
|
mOrigImageData = new DbgModuleMemoryCache(0, needHotTargetMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
int numSections = ntHdr.mFileHeader.mNumberOfSections;
|
int numSections = ntHdr.mFileHeader.mNumberOfSections;
|
||||||
|
|
|
@ -1939,14 +1939,32 @@ bool DebugTarget::RollBackStackFrame(CPURegisters* registers, addr_target* outRe
|
||||||
if (outReturnAddressLoc != NULL)
|
if (outReturnAddressLoc != NULL)
|
||||||
*outReturnAddressLoc = 0;
|
*outReturnAddressLoc = 0;
|
||||||
|
|
||||||
// Don't even try to use the frame descriptor in x64, the exception directory
|
CPUInst inst;
|
||||||
// allows us to rollback from any instruction
|
if (DecodeInstruction(registers->GetPC(), &inst))
|
||||||
|
{
|
||||||
|
if (inst.IsReturn())
|
||||||
|
{
|
||||||
|
// If we are literally just a return then often the frame descriptor is wrong,
|
||||||
|
// but we know this is ACTUALLY just a simple rollback
|
||||||
|
|
||||||
|
int regSize = sizeof(addr_target);
|
||||||
|
addr_target* regPC = registers->GetPCRegisterRef();
|
||||||
|
addr_target* regSP = registers->GetSPRegisterRef();
|
||||||
|
|
||||||
|
addr_target newPC = 0;
|
||||||
|
gDebugger->ReadMemory(*regSP, sizeof(addr_target), &newPC);
|
||||||
|
*regSP += regSize;
|
||||||
|
*regPC = newPC;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef BF_DBG_32
|
#ifdef BF_DBG_32
|
||||||
if (RollBackStackFrame_DwFrameDescriptor(registers, outReturnAddressLoc))
|
if (RollBackStackFrame_DwFrameDescriptor(registers, outReturnAddressLoc))
|
||||||
return true;
|
return true;
|
||||||
if (RollBackStackFrame_COFFFrameDescriptor(registers, outReturnAddressLoc, isStackStart))
|
if (RollBackStackFrame_COFFFrameDescriptor(registers, outReturnAddressLoc, isStackStart))
|
||||||
return true;
|
return true;
|
||||||
addr_target pc = registers->GetPC();
|
auto pc = registers->GetPC();
|
||||||
DbgSubprogram* dbgSubprogram = FindSubProgram(pc);
|
DbgSubprogram* dbgSubprogram = FindSubProgram(pc);
|
||||||
if (dbgSubprogram != NULL)
|
if (dbgSubprogram != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,33 +16,35 @@ DbgModuleMemoryCache::DbgModuleMemoryCache(uintptr addr, int size)
|
||||||
mBlocks = new uint8*[mBlockCount];
|
mBlocks = new uint8*[mBlockCount];
|
||||||
memset(mBlocks, 0, mBlockCount * sizeof(uint8*));
|
memset(mBlocks, 0, mBlockCount * sizeof(uint8*));
|
||||||
mFlags = new DbgMemoryFlags[mBlockCount];
|
mFlags = new DbgMemoryFlags[mBlockCount];
|
||||||
memset(mBlocks, 0, mBlockCount * sizeof(DbgMemoryFlags));
|
memset(mFlags, 0, mBlockCount * sizeof(DbgMemoryFlags));
|
||||||
mOwns = true;
|
mOwns = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
DbgModuleMemoryCache::DbgModuleMemoryCache(uintptr addr, uint8* data, int size, bool makeCopy)
|
// DbgModuleMemoryCache::DbgModuleMemoryCache(uintptr addr, uint8* data, int size, bool makeCopy)
|
||||||
{
|
// {
|
||||||
mAddr = addr;
|
// mAddr = addr;
|
||||||
mBlockSize = size;
|
// mBlockSize = size;
|
||||||
mBlocks = new uint8*[1];
|
// mBlocks = new uint8*[1];
|
||||||
mFlags = new DbgMemoryFlags[1];
|
// mFlags = new DbgMemoryFlags[1];
|
||||||
mSize = size;
|
// mSize = size;
|
||||||
|
//
|
||||||
if (makeCopy)
|
// if (makeCopy)
|
||||||
{
|
// {
|
||||||
uint8* dataCopy = new uint8[size];
|
// uint8* dataCopy = new uint8[size];
|
||||||
if (data != NULL)
|
// if (data != NULL)
|
||||||
memcpy(dataCopy, data, size);
|
// memcpy(dataCopy, data, size);
|
||||||
mBlocks[0] = dataCopy;
|
// else
|
||||||
}
|
// memset(dataCopy, 0, size);
|
||||||
else
|
// mBlocks[0] = dataCopy;
|
||||||
{
|
// }
|
||||||
mBlocks[0] = data;
|
// else
|
||||||
}
|
// {
|
||||||
|
// mBlocks[0] = data;
|
||||||
mOwns = makeCopy;
|
// }
|
||||||
mBlockCount = 1;
|
//
|
||||||
}
|
// mOwns = makeCopy;
|
||||||
|
// mBlockCount = 1;
|
||||||
|
// }
|
||||||
|
|
||||||
DbgModuleMemoryCache::~DbgModuleMemoryCache()
|
DbgModuleMemoryCache::~DbgModuleMemoryCache()
|
||||||
{
|
{
|
||||||
|
@ -57,13 +59,17 @@ DbgModuleMemoryCache::~DbgModuleMemoryCache()
|
||||||
|
|
||||||
DbgMemoryFlags DbgModuleMemoryCache::Read(uintptr addr, uint8* data, int size)
|
DbgMemoryFlags DbgModuleMemoryCache::Read(uintptr addr, uint8* data, int size)
|
||||||
{
|
{
|
||||||
|
BF_ASSERT(mAddr != 0);
|
||||||
|
|
||||||
int sizeLeft = size;
|
int sizeLeft = size;
|
||||||
DbgMemoryFlags flags = DbgMemoryFlags_None;
|
DbgMemoryFlags flags = DbgMemoryFlags_None;
|
||||||
|
|
||||||
if ((addr < mAddr) || (addr > mAddr + mSize))
|
if ((addr < mAddr) || (addr > mAddr + mSize))
|
||||||
{
|
{
|
||||||
gDebugger->ReadMemory(addr, size, data);
|
gDebugger->ReadMemory(addr, size, data);
|
||||||
return gDebugger->GetMemoryFlags(addr);
|
flags = gDebugger->GetMemoryFlags(addr);
|
||||||
|
BfLogDbg("Got memory flags %p = %d\n", addr, flags);
|
||||||
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
int relAddr = (int)(addr - mAddr);
|
int relAddr = (int)(addr - mAddr);
|
||||||
|
@ -80,7 +86,7 @@ DbgMemoryFlags DbgModuleMemoryCache::Read(uintptr addr, uint8* data, int size)
|
||||||
mBlocks[blockIdx] = block;
|
mBlocks[blockIdx] = block;
|
||||||
|
|
||||||
mFlags[blockIdx] = gDebugger->GetMemoryFlags(mAddr + blockIdx * mBlockSize);
|
mFlags[blockIdx] = gDebugger->GetMemoryFlags(mAddr + blockIdx * mBlockSize);
|
||||||
//BfLogDbg("Memory flags for %p = %d\n", mAddr + blockIdx * mBlockSize, mFlags[blockIdx]);
|
BfLogDbg("Memory flags for %p = %d\n", mAddr + blockIdx * mBlockSize, mFlags[blockIdx]);
|
||||||
}
|
}
|
||||||
|
|
||||||
flags = mFlags[blockIdx];
|
flags = mFlags[blockIdx];
|
||||||
|
|
|
@ -192,7 +192,7 @@ public:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DbgModuleMemoryCache(uintptr addr, int size);
|
DbgModuleMemoryCache(uintptr addr, int size);
|
||||||
DbgModuleMemoryCache(uintptr addr, uint8* data, int size, bool makeCopy);
|
//DbgModuleMemoryCache(uintptr addr, uint8* data, int size, bool makeCopy);
|
||||||
~DbgModuleMemoryCache();
|
~DbgModuleMemoryCache();
|
||||||
|
|
||||||
DbgMemoryFlags Read(uintptr addr, uint8* data, int size);
|
DbgMemoryFlags Read(uintptr addr, uint8* data, int size);
|
||||||
|
|
|
@ -522,7 +522,7 @@ WinDebugger::WinDebugger(DebugManager* debugManager) : mDbgSymSrv(this)
|
||||||
mDbgProcessHandle = 0;
|
mDbgProcessHandle = 0;
|
||||||
mDbgThreadHandle = 0;
|
mDbgThreadHandle = 0;
|
||||||
mDbgProcessId = 0;
|
mDbgProcessId = 0;
|
||||||
mIsPartialCallStack = false;
|
mIsPartialCallStack = true;
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
|
@ -675,6 +675,9 @@ void WinDebugger::PhysSetBreakpoint(addr_target address)
|
||||||
if ((flags & DbgMemoryFlags_Execute) == 0)
|
if ((flags & DbgMemoryFlags_Execute) == 0)
|
||||||
{
|
{
|
||||||
BfLogDbg("Breakpoint ignored - execute flag NOT set in breakpoint address\n", address);
|
BfLogDbg("Breakpoint ignored - execute flag NOT set in breakpoint address\n", address);
|
||||||
|
|
||||||
|
BfLogDbg("Memory Flags = %d\n", gDebugger->GetMemoryFlags(address));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1289,6 +1292,7 @@ void WinDebugger::Detach()
|
||||||
mRunState = RunState_NotStarted;
|
mRunState = RunState_NotStarted;
|
||||||
mStepType = StepType_None;
|
mStepType = StepType_None;
|
||||||
mHadImageFindError = false;
|
mHadImageFindError = false;
|
||||||
|
mIsPartialCallStack = true;
|
||||||
|
|
||||||
delete mDebugPendingExpr;
|
delete mDebugPendingExpr;
|
||||||
mDebugPendingExpr = NULL;
|
mDebugPendingExpr = NULL;
|
||||||
|
@ -2007,9 +2011,8 @@ bool WinDebugger::DoUpdate()
|
||||||
isDeeper = mStepSP > BF_CONTEXT_SP(lcContext);
|
isDeeper = mStepSP > BF_CONTEXT_SP(lcContext);
|
||||||
if ((mStepType == StepType_StepOut) || (mStepType == StepType_StepOut_ThenInto))
|
if ((mStepType == StepType_StepOut) || (mStepType == StepType_StepOut_ThenInto))
|
||||||
{
|
{
|
||||||
BfLogDbg("StepOut Iteration SP:%p StartSP:%p\n", BF_CONTEXT_SP(lcContext), mStepSP);
|
|
||||||
|
|
||||||
isDeeper = mStepSP >= BF_CONTEXT_SP(lcContext);
|
isDeeper = mStepSP >= BF_CONTEXT_SP(lcContext);
|
||||||
|
BfLogDbg("StepOut Iteration SP:%p StartSP:%p IsDeeper:%d\n", BF_CONTEXT_SP(lcContext), mStepSP, isDeeper);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((mStepType == StepType_StepOut) || (mStepType == StepType_StepOut_ThenInto)) && (breakpoint == NULL) && (isDeeper))
|
if (((mStepType == StepType_StepOut) || (mStepType == StepType_StepOut_ThenInto)) && (breakpoint == NULL) && (isDeeper))
|
||||||
|
@ -3637,11 +3640,11 @@ bool WinDebugger::CheckConditionalBreakpoint(WdBreakpoint* breakpoint, DbgSubpro
|
||||||
conditional->mDbgEvaluationContext->mDbgExprEvaluator->mExpressionFlags = (DwEvalExpressionFlags)(DwEvalExpressionFlag_AllowSideEffects | DwEvalExpressionFlag_AllowCalls);
|
conditional->mDbgEvaluationContext->mDbgExprEvaluator->mExpressionFlags = (DwEvalExpressionFlags)(DwEvalExpressionFlag_AllowSideEffects | DwEvalExpressionFlag_AllowCalls);
|
||||||
}
|
}
|
||||||
|
|
||||||
WdStackFrame wdStackFrame;
|
WdStackFrame* wdStackFrame = new WdStackFrame();
|
||||||
PopulateRegisters(&wdStackFrame.mRegisters);
|
PopulateRegisters(&wdStackFrame->mRegisters);
|
||||||
mCallStack.push_back(&wdStackFrame);
|
mCallStack.Add(wdStackFrame);
|
||||||
DbgTypedValue result = conditional->mDbgEvaluationContext->EvaluateInContext(DbgTypedValue());
|
DbgTypedValue result = conditional->mDbgEvaluationContext->EvaluateInContext(DbgTypedValue());
|
||||||
mCallStack.pop_back();
|
ClearCallStack();
|
||||||
|
|
||||||
if (conditional->mDbgEvaluationContext->mPassInstance->HasFailed())
|
if (conditional->mDbgEvaluationContext->mPassInstance->HasFailed())
|
||||||
{
|
{
|
||||||
|
@ -3744,6 +3747,8 @@ void WinDebugger::CleanupDebugEval(bool restoreRegisters)
|
||||||
{
|
{
|
||||||
SetAndRestoreValue<WdThreadInfo*> activeThread(mActiveThread, evalThreadInfo);
|
SetAndRestoreValue<WdThreadInfo*> activeThread(mActiveThread, evalThreadInfo);
|
||||||
RestoreAllRegisters();
|
RestoreAllRegisters();
|
||||||
|
// if (mRunState == RunState_Running_ToTempBreakpoint)
|
||||||
|
// mRunState = RunState_Paused;
|
||||||
}
|
}
|
||||||
|
|
||||||
evalThreadInfo->mStartSP = mDebugEvalThreadInfo.mStartSP;
|
evalThreadInfo->mStartSP = mDebugEvalThreadInfo.mStartSP;
|
||||||
|
@ -4110,10 +4115,19 @@ void WinDebugger::RestoreAllRegisters()
|
||||||
BF_SetThreadContext(mActiveThread->mHThread, &mSavedContext);
|
BF_SetThreadContext(mActiveThread->mHThread, &mSavedContext);
|
||||||
|
|
||||||
#ifdef BF_DBG_32
|
#ifdef BF_DBG_32
|
||||||
SetTempBreakpoint(mSavedContext.Eip);
|
//TODO: Find the test that this was required for...
|
||||||
mRunState = RunState_Running_ToTempBreakpoint;
|
// if (mActiveThread->mIsAtBreakpointAddress == mSavedContext.Eip)
|
||||||
mStepType = StepType_ToTempBreakpoint;
|
// {
|
||||||
mSteppingThread = mActiveThread;
|
// if (mRunState == RunState_Running_ToTempBreakpoint)
|
||||||
|
// mRunState = RunState_Paused;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// SetTempBreakpoint(mSavedContext.Eip);
|
||||||
|
// mRunState = RunState_Running_ToTempBreakpoint;
|
||||||
|
// mStepType = StepType_ToTempBreakpoint;
|
||||||
|
// mSteppingThread = mActiveThread;
|
||||||
|
// }
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4280,6 +4294,42 @@ bool WinDebugger::SetupStep(StepType stepType)
|
||||||
if ((mStepType != StepType_StepOut_NoFrame) && (RollBackStackFrame(®isters, true)))
|
if ((mStepType != StepType_StepOut_NoFrame) && (RollBackStackFrame(®isters, true)))
|
||||||
{
|
{
|
||||||
pcAddress = registers.GetPC();
|
pcAddress = registers.GetPC();
|
||||||
|
|
||||||
|
addr_target oldAddress = pcAddress;
|
||||||
|
|
||||||
|
CPUInst inst;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
if (!mDebugTarget->DecodeInstruction(pcAddress, &inst))
|
||||||
|
break;
|
||||||
|
if ((inst.IsBranch()) || (inst.IsCall()) || (inst.IsReturn()))
|
||||||
|
break;
|
||||||
|
DbgSubprogram* checkSubprogram = NULL;
|
||||||
|
auto checkLineData = FindLineDataAtAddress(pcAddress, &checkSubprogram, NULL, NULL, DbgOnDemandKind_LocalOnly);
|
||||||
|
if (checkLineData == NULL)
|
||||||
|
break;
|
||||||
|
if (checkSubprogram->GetLineAddr(*checkLineData) == pcAddress)
|
||||||
|
break;
|
||||||
|
pcAddress += inst.GetLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pcAddress != oldAddress)
|
||||||
|
{
|
||||||
|
BfLogDbg("Adjusting stepout address from %p to %p\n", oldAddress, pcAddress);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef BF_DBG_32
|
||||||
|
// if (mDebugTarget->DecodeInstruction(pcAddress, &inst))
|
||||||
|
// {
|
||||||
|
// if (inst.IsStackAdjust())
|
||||||
|
// {
|
||||||
|
// auto oldAddress = pcAddress;
|
||||||
|
// pcAddress += inst.GetLength();
|
||||||
|
// BfLogDbg("Adjusting stepout address from %p to %p\n", oldAddress, pcAddress);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
#endif
|
||||||
|
|
||||||
BfLogDbg("SetupStep Stepout SetTempBreakpoint %p\n", pcAddress);
|
BfLogDbg("SetupStep Stepout SetTempBreakpoint %p\n", pcAddress);
|
||||||
SetTempBreakpoint(pcAddress);
|
SetTempBreakpoint(pcAddress);
|
||||||
mStepBreakpointAddrs.push_back(pcAddress);
|
mStepBreakpointAddrs.push_back(pcAddress);
|
||||||
|
@ -4380,6 +4430,12 @@ bool WinDebugger::SetupStep(StepType stepType)
|
||||||
breakOnNext = true;
|
breakOnNext = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((inst.IsReturn()) && (instIdx == 0) && (!mStepInAssembly))
|
||||||
|
{
|
||||||
|
// Do actual STEP OUT so we set up proper "stepping over unimportant post-return instructions"
|
||||||
|
return SetupStep(StepType_StepOut);
|
||||||
|
}
|
||||||
|
|
||||||
if ((breakOnNext) || (mStepInAssembly) || (isAtLine) || (inst.IsBranch()) || (inst.IsCall()) || (inst.IsReturn()))
|
if ((breakOnNext) || (mStepInAssembly) || (isAtLine) || (inst.IsBranch()) || (inst.IsCall()) || (inst.IsReturn()))
|
||||||
{
|
{
|
||||||
if (((instIdx == 0) || (mStepInAssembly)) && (!breakOnNext))
|
if (((instIdx == 0) || (mStepInAssembly)) && (!breakOnNext))
|
||||||
|
@ -4621,6 +4677,8 @@ void WinDebugger::CheckNonDebuggerBreak()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool showMainThread = false;
|
||||||
|
|
||||||
String symbol;
|
String symbol;
|
||||||
addr_target offset;
|
addr_target offset;
|
||||||
DbgModule* dbgModule;
|
DbgModule* dbgModule;
|
||||||
|
@ -4628,17 +4686,28 @@ void WinDebugger::CheckNonDebuggerBreak()
|
||||||
{
|
{
|
||||||
if (symbol == "DbgBreakPoint")
|
if (symbol == "DbgBreakPoint")
|
||||||
{
|
{
|
||||||
// This is a manual break, show the main thread
|
showMainThread = true;
|
||||||
mActiveThread = mThreadList.front();
|
}
|
||||||
if (mDebugPendingExpr != NULL)
|
}
|
||||||
|
#ifdef BF_DBG_32
|
||||||
|
else if ((dbgModule != NULL) && (dbgModule->mDisplayName.Equals("kernel32.dll", StringImpl::CompareKind_OrdinalIgnoreCase)))
|
||||||
|
{
|
||||||
|
showMainThread = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (showMainThread)
|
||||||
|
{
|
||||||
|
// This is a manual break, show the main thread
|
||||||
|
mActiveThread = mThreadList.front();
|
||||||
|
if (mDebugPendingExpr != NULL)
|
||||||
|
{
|
||||||
|
for (auto thread : mThreadList)
|
||||||
{
|
{
|
||||||
for (auto thread : mThreadList)
|
if (thread->mThreadId == mDebugEvalThreadInfo.mThreadId)
|
||||||
{
|
{
|
||||||
if (thread->mThreadId == mDebugEvalThreadInfo.mThreadId)
|
mActiveThread = thread;
|
||||||
{
|
break;
|
||||||
mActiveThread = thread;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8754,6 +8823,8 @@ DbgSubprogram* WinDebugger::GetCallStackSubprogram(int callStackIdx)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (callStackIdx >= (int)mCallStack.size())
|
if (callStackIdx >= (int)mCallStack.size())
|
||||||
UpdateCallStack();
|
UpdateCallStack();
|
||||||
|
if (mCallStack.IsEmpty())
|
||||||
|
return NULL;
|
||||||
if (callStackIdx >= (int)mCallStack.size())
|
if (callStackIdx >= (int)mCallStack.size())
|
||||||
callStackIdx = 0;
|
callStackIdx = 0;
|
||||||
UpdateCallStackMethod(callStackIdx);
|
UpdateCallStackMethod(callStackIdx);
|
||||||
|
@ -8767,6 +8838,8 @@ DbgCompileUnit* WinDebugger::GetCallStackCompileUnit(int callStackIdx)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (callStackIdx >= (int)mCallStack.size())
|
if (callStackIdx >= (int)mCallStack.size())
|
||||||
UpdateCallStack();
|
UpdateCallStack();
|
||||||
|
if (mCallStack.IsEmpty())
|
||||||
|
return NULL;
|
||||||
if (callStackIdx >= (int)mCallStack.size())
|
if (callStackIdx >= (int)mCallStack.size())
|
||||||
callStackIdx = 0;
|
callStackIdx = 0;
|
||||||
UpdateCallStackMethod(callStackIdx);
|
UpdateCallStackMethod(callStackIdx);
|
||||||
|
|
|
@ -151,6 +151,11 @@ int X86Instr::GetLength()
|
||||||
return mSize;
|
return mSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool X86Instr::IsStackAdjust()
|
||||||
|
{
|
||||||
|
return mMCInst.getOpcode() == X86::SUB32ri8;
|
||||||
|
}
|
||||||
|
|
||||||
bool X86Instr::IsBranch()
|
bool X86Instr::IsBranch()
|
||||||
{
|
{
|
||||||
const MCInstrDesc &instDesc = mX86->mInstrInfo->get(mMCInst.getOpcode());
|
const MCInstrDesc &instDesc = mX86->mInstrInfo->get(mMCInst.getOpcode());
|
||||||
|
|
|
@ -292,6 +292,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetLength();
|
int GetLength();
|
||||||
|
bool IsStackAdjust();
|
||||||
bool IsBranch();
|
bool IsBranch();
|
||||||
bool IsCall();
|
bool IsCall();
|
||||||
bool IsRep(bool& isPrefixOnly);
|
bool IsRep(bool& isPrefixOnly);
|
||||||
|
|
Binary file not shown.
|
@ -3,6 +3,12 @@
|
||||||
SETLOCAL EnableDelayedExpansion
|
SETLOCAL EnableDelayedExpansion
|
||||||
@SET PATH=c:\Python27;%PATH%
|
@SET PATH=c:\Python27;%PATH%
|
||||||
|
|
||||||
|
@SET MSBUILD_FLAGS=
|
||||||
|
@IF "%1" NEQ "fast" goto SKIP
|
||||||
|
@SET FASTTEST=1
|
||||||
|
@ECHO Performing fast test (Win64/Debug only)
|
||||||
|
:SKIP
|
||||||
|
|
||||||
PUSHD %~dp0..\
|
PUSHD %~dp0..\
|
||||||
|
|
||||||
@SET TESTPATH=IDE\Tests\CompileFail001
|
@SET TESTPATH=IDE\Tests\CompileFail001
|
||||||
|
@ -29,13 +35,16 @@ PUSHD %~dp0..\
|
||||||
%~dp0\RunAndWait %~dp0..\IDE\dist\BeefIDE_d.exe -proddir=%~dp0..\%TESTPATH% -test=%cd%\%%i
|
%~dp0\RunAndWait %~dp0..\IDE\dist\BeefIDE_d.exe -proddir=%~dp0..\%TESTPATH% -test=%cd%\%%i
|
||||||
@IF !ERRORLEVEL! NEQ 0 GOTO:EOF
|
@IF !ERRORLEVEL! NEQ 0 GOTO:EOF
|
||||||
|
|
||||||
@ECHO Testing %%i in BeefIDE - Win64
|
@IF !FASTTEST! NEQ 1 (
|
||||||
%~dp0\RunAndWait %~dp0..\IDE\dist\BeefIDE.exe -proddir=%~dp0..\%TESTPATH% -test=%cd%\%%i
|
echo DOING %FASTTEST%
|
||||||
@IF !ERRORLEVEL! NEQ 0 GOTO:EOF
|
@ECHO Testing %%i in BeefIDE - Win64
|
||||||
|
%~dp0\RunAndWait %~dp0..\IDE\dist\BeefIDE.exe -proddir=%~dp0..\%TESTPATH% -test=%cd%\%%i
|
||||||
|
@IF !ERRORLEVEL! NEQ 0 GOTO:EOF
|
||||||
|
|
||||||
@REM @ECHO Testing %%i - Win32
|
@ECHO Testing %%i - Win32
|
||||||
@REM %~dp0\RunAndWait %~dp0..\IDE\dist\BeefIDE_d.exe -proddir=%~dp0..\%TESTPATH% -test=%cd%\%%i -platform=Win32
|
%~dp0\RunAndWait %~dp0..\IDE\dist\BeefIDE_d.exe -proddir=%~dp0..\%TESTPATH% -test=%cd%\%%i -platform=Win32
|
||||||
@REM @IF !ERRORLEVEL! NEQ 0 GOTO:EOF
|
@IF !ERRORLEVEL! NEQ 0 GOTO:EOF
|
||||||
|
)
|
||||||
)
|
)
|
||||||
GOTO:EOF
|
GOTO:EOF
|
||||||
|
|
||||||
|
|
0
builds/holder.txt
Normal file
0
builds/holder.txt
Normal file
Loading…
Add table
Add a link
Reference in a new issue