X2CommunityCore / X2ModBuildCommon

An improved XCOM 2 mod build system
MIT License
5 stars 5 forks source link

Modbuddy crashes when trying to edit mod description #58

Open Iridar opened 3 years ago

Iridar commented 3 years ago

Typing exactly two characters, not counting empty lines, seems to crash the modbuddy. Normally there's no point in editing mod description through modbuddy, since it can be changed in workshop interface later, but that menu is also used to set mod's workshop tags, and is the most convenient way of doing that, not counting the alternative mod uploader.

robojumper commented 3 years ago

Through WinDbg, I have obtained the following. Someone might be able to continue off this

Launch ModBuddy through WinDbg, load the project Pause in WinDbg

.symfix sxe clr sxd av .loadby sos clr !name2ee Microsoft.Build.dll Microsoft.Build.Evaluation.Project+Data.AddTarget !bpmd -md \<whatever the method descriptor is> !name2ee Microsoft.Build.dll Microsoft.Build.Collections.RetrievableEntryHashSet`1.MakeReadOnly !bpmd -md \<whatever the method descriptor is> .echo Resume in WinDbg, provoke crash .echo First exception will be caught g .echo bunch of breakpoints hit, use !dso to inspect managed objects and watch targets be added !dso g .echo continue with g... !pe !clrstack

Click to expand ``` OS Thread Id: 0x36f4 (0) Child SP IP Call Site 00afde2c 7672b4b2 [HelperMethodFrame: 00afde2c] 00afdedc 7939871c Microsoft.Build.Shared.ErrorUtilities.ThrowInvalidOperation(System.String, System.Object[]) 00afdef8 7938a628 Microsoft.Build.Collections.RetrievableEntryHashSet`1[[System.__Canon, mscorlib]].AddEvenIfPresent(System.__Canon) 00afdf18 790e4cc3 Microsoft.Build.Evaluation.Project+Data.AddTarget(Microsoft.Build.Execution.ProjectTargetInstance) 00afdf1c 7908cf9f Microsoft.Build.Evaluation.Evaluator`4[[System.__Canon, mscorlib],[System.__Canon, mscorlib],[System.__Canon, mscorlib],[System.__Canon, mscorlib]].ReadTargetElement(Microsoft.Build.Construction.ProjectTargetElement, System.Collections.Generic.LinkedList`1, System.Collections.Generic.Dictionary`2>) 00afdf54 7907d431 Microsoft.Build.Evaluation.Evaluator`4[[System.__Canon, mscorlib],[System.__Canon, mscorlib],[System.__Canon, mscorlib],[System.__Canon, mscorlib]].Evaluate() 00afe2b8 7907c8f7 Microsoft.Build.Evaluation.Evaluator`4[[System.__Canon, mscorlib],[System.__Canon, mscorlib],[System.__Canon, mscorlib],[System.__Canon, mscorlib]].Evaluate(Microsoft.Build.Evaluation.IEvaluatorData`4, Microsoft.Build.Construction.ProjectRootElement, Microsoft.Build.Evaluation.ProjectLoadSettings, Int32, Microsoft.Build.Collections.PropertyDictionary`1, Microsoft.Build.BackEnd.Logging.ILoggingService, Microsoft.Build.Evaluation.IItemFactory`2, Microsoft.Build.Evaluation.IToolsetProvider, Microsoft.Build.Evaluation.ProjectRootElementCache, Microsoft.Build.Framework.BuildEventContext, Microsoft.Build.Execution.ProjectInstance) 00afe310 790e2e0b Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(Microsoft.Build.BackEnd.Logging.ILoggingService) 00afe380 012a5258 Microsoft.VisualStudio.Project.ConfigProvider.GetPropertiesConditionedOn(System.String) 00afe398 1230c117 Microsoft.VisualStudio.Project.ConfigProvider.GetCfgNames(UInt32, System.String[], UInt32[]) 00afe3b8 1230c01e DomainNeutralILStubClass.IL_STUB_COMtoCLR(Int32, IntPtr, IntPtr) 00afe4c4 5ac7f434 [ComMethodFrame: 00afe4c4] 00afe938 5ac7f434 [InlinedCallFrame: 00afe938] 00afe934 1230bea5 DomainNeutralILStubClass.IL_STUB_CLRtoCOM() 00afe938 1230bb05 [InlinedCallFrame: 00afe938] EnvDTE.ConfigurationManager.get_ActiveConfiguration() 00afe99c 1230bb05 Microsoft.VisualStudio.Project.Utilities.GetActiveConfigurationName(EnvDTE.Project) 00afe9ac 012a05ac Microsoft.VisualStudio.Project.ProjectNode.SetCurrentConfiguration() 00afe9b8 012a0498 Microsoft.VisualStudio.Project.ProjectNode.GetMsBuildProperty(System.String, Boolean) 00afe9d8 03581555 Microsoft.VisualStudio.Project.ProjectNode.SetProjectProperty(System.String, System.String) 00afe9f8 1230ff58 Firaxis.VisualStudio.Projects.XCOM2.SettingsPages.InfoUserControl.txtDescription_TextChanged(System.Object, System.EventArgs) 00afea08 57ec8aac System.Windows.Forms.Control.OnTextChanged(System.EventArgs) 00afea1c 57f1de4b System.Windows.Forms.TextBoxBase.OnTextChanged(System.EventArgs) 00afea2c 5895e0b5 System.Windows.Forms.TextBoxBase.WmReflectCommand(System.Windows.Forms.Message ByRef) 00afea48 57ece534 System.Windows.Forms.TextBoxBase.WndProc(System.Windows.Forms.Message ByRef) 00afea58 57ece4da System.Windows.Forms.TextBox.WndProc(System.Windows.Forms.Message ByRef) 00afea70 57ec2ff3 System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef) 00afea78 57ec2f85 System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef) 00afea8c 585ad1fb System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr) 00afeca4 158a2a8d [InlinedCallFrame: 00afeca4] 00afeca0 57f250b1 DomainNeutralILStubClass.IL_STUB_PInvoke(System.Runtime.InteropServices.HandleRef, Int32, IntPtr, IntPtr) 00afeca4 57ece3c3 [InlinedCallFrame: 00afeca4] System.Windows.Forms.UnsafeNativeMethods.SendMessage(System.Runtime.InteropServices.HandleRef, Int32, IntPtr, IntPtr) 00afece0 57ece3c3 System.Windows.Forms.Control.SendMessage(Int32, IntPtr, IntPtr) 00afecf8 57ecdd3e System.Windows.Forms.Control.ReflectMessageInternal(IntPtr, System.Windows.Forms.Message ByRef) 00afed08 57ed6cec System.Windows.Forms.Control.WmCommand(System.Windows.Forms.Message ByRef) 00afed18 57ec3386 System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef) 00afed1c 57ecc9c1 [InlinedCallFrame: 00afed1c] 00afed64 57ecc9c1 System.Windows.Forms.ScrollableControl.WndProc(System.Windows.Forms.Message ByRef) 00afed70 57ecdae3 System.Windows.Forms.ContainerControl.WndProc(System.Windows.Forms.Message ByRef) 00afed78 57ee9403 System.Windows.Forms.UserControl.WndProc(System.Windows.Forms.Message ByRef) 00afed80 57ec2ff3 System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef) 00afed88 57ec2f85 System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef) 00afed9c 585ad1fb System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr) 00aff2c0 158a2a8d [InlinedCallFrame: 00aff2c0] System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr, IntPtr, Int32, IntPtr, IntPtr) 00aff2bc 57ec35d7 System.Windows.Forms.NativeWindow.DefWndProc(System.Windows.Forms.Message ByRef) 00aff2f0 57ec3570 System.Windows.Forms.Control.DefWndProc(System.Windows.Forms.Message ByRef) 00aff2f4 5859e834 System.Windows.Forms.Control.WmKeyChar(System.Windows.Forms.Message ByRef) 00aff304 5894141d System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef) 00aff308 57ece528 [InlinedCallFrame: 00aff308] 00aff350 57ece528 System.Windows.Forms.TextBoxBase.WndProc(System.Windows.Forms.Message ByRef) 00aff360 57ece4da System.Windows.Forms.TextBox.WndProc(System.Windows.Forms.Message ByRef) 00aff378 57ec2ff3 System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef) 00aff380 57ec2f85 System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef) 00aff394 585ad1fb System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr) ```