I'm executing Xenko via Visual Studio which opens the Xenko's loading interface, and after selecting my project it opens Xenko's main interface.
Here starts the problem: when I snoop the window of the Xenko's main interface, it stops the execution of the code (to be exact it stops when I press the + on the left in snoop)
see: https://drive.google.com/open?id=1mYp1whk63DbAxLX4kSDOvBLUScS2h-c0
throwing a FatalExecutionEngineError see: https://drive.google.com/open?id=1ZcqNxawpoKh69ybD1ooSrbcnZ9zO-kwF
or a System.ExecutionEngineException
when I try clicking on Continue in Visual Studio.
If it can help, that's what we can see by opening the exception parameters:
see: https://drive.google.com/open?id=1fuGeDvF-PO0uOvN07mStTUJHVDe_6BeB
Is there a way to avoid the error to stop the project from running? How to do so?
I tried:
- try catch
- unchecking: stop when that type of error occurs
- checking it but by checking also "excepted when it occurs with...'
- disabling the exception assistant
- I also tried to launch Xenko directly instead of launching it via Visual Studio, but it also crashed obviously.
[STAThread]
public static void Main() {
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
EditorPath.EditorTitle = XenkoGameStudio.EditorName;
if (IntPtr.Size == 4) {
MessageBox.Show("Xenko GameStudio requires a 64bit OS to run.", "Xenko", MessageBoxButton.OK, MessageBoxImage.Error);
Environment.Exit(1);
}
PrivacyPolicyHelper.RestartApplication = RestartApplication;
PrivacyPolicyHelper.EnsurePrivacyPolicyXenko30();
// We use MRU of the current version only when we're trying to reload last session.
var mru = new MostRecentlyUsedFileCollection(InternalSettings.LoadProfileCopy, InternalSettings.MostRecentlyUsedSessions, InternalSettings.WriteFile);
mru.LoadFromSettings();
EditorSettings.Initialize();
Thread.CurrentThread.Name = "Main thread";
// Install Metrics for the editor
using(XenkoGameStudio.MetricsClient = new MetricsClient(CommonApps.XenkoEditorAppId)) {
try {
// Environment.GetCommandLineArgs correctly process arguments regarding the presence of '\' and '"'
var args = Environment.GetCommandLineArgs().Skip(1).ToList();
var startupSessionPath = XenkoEditorSettings.StartupSession.GetValue();
var lastSessionPath = EditorSettings.ReloadLastSession.GetValue() ? mru.MostRecentlyUsedFiles.FirstOrDefault() : null;
var initialSessionPath = !UPath.IsNullOrEmpty(startupSessionPath) ? startupSessionPath: lastSessionPath ? .FilePath;
// Handle arguments
for (var i = 0; i < args.Count; i++) {
if (args[i] == "/LauncherWindowHandle") {
windowHandle = new IntPtr(long.Parse(args[++i]));
}
else if (args[i] == "/NewProject") {
initialSessionPath = null;
}
else if (args[i] == "/DebugEditorGraphics") {
EmbeddedGame.DebugMode = true;
}
else if (args[i] == "/RenderDoc") {
// TODO: RenderDoc is not working here (when not in debug)
GameStudioPreviewService.DisablePreview = true;
renderDocManager = new RenderDocManager();
}
else if (args[i] == "/Reattach") {
var debuggerProcessId = int.Parse(args[++i]);
if (!System.Diagnostics.Debugger.IsAttached) {
using(var debugger = VisualStudioDebugger.GetByProcess(debuggerProcessId)) {
debugger ? .Attach();
}
}
}
else if (args[i] == "/RecordEffects") {
GameStudioBuilderService.GlobalEffectLogPath = args[++i];
}
else {
initialSessionPath = args[i];
}
}
RuntimeHelpers.RunModuleConstructor(typeof(Asset).Module.ModuleHandle);
//listen to logger for crash report
GlobalLogger.GlobalMessageLogged += GlobalLoggerOnGlobalMessageLogged;
mainDispatcher = Dispatcher.CurrentDispatcher;
mainDispatcher.InvokeAsync(() = >Startup(initialSessionPath));
using(new WindowManager(mainDispatcher)) {
app = new App {
ShutdownMode = ShutdownMode.OnExplicitShutdown
};
app.Activated += (sender, eventArgs) = >{
XenkoGameStudio.MetricsClient ? .SetActiveState(true);
};
app.Deactivated += (sender, eventArgs) = >{
XenkoGameStudio.MetricsClient ? .SetActiveState(false);
};
app.InitializeComponent();
app.Run();
}
renderDocManager ? .Shutdown();
}
catch(Exception e) {
HandleException(e, 0);
}
}
}
I can't give you anything that could reproduce the error, but at least you can see the context of the error. It stops at app.Run();
.
It would be great if the project could keep running when I expand the tree in snoop, because of course snoop also closes when the project stops running.