ioSender icon indicating copy to clipboard operation
ioSender copied to clipboard

Crashing on Launch

Open timm052 opened this issue 3 years ago • 13 comments

I'm having issues with this on an old laptop running windows 10 IOsender will start and ask if it can create a new config file but then it silently crashes without opening the main window the laptop is a fairly old AMD machine from the Windows 7 era but is fully up to date so I'm not sure what's going on. it's a fresh instal so maybe I'm missing a dependency is there any easy way of getting a crash log so I can work out whats going on?

timm052 avatar Nov 10 '21 13:11 timm052

Can you try the edge version? Note that there is a new algorithm for checking soft limits in this that needs verification.

You may find the reason for the crash in the Windows event log.

terjeio avatar Nov 10 '21 13:11 terjeio

IIRC you are using a Grbl_ESP32 controller, ESP32 often outputs a lot of "noise" on startup and takes a fairly long time to boot. You may try to increase the sender reset delay in its App.config, default is 2 seconds:

<ResetDelay>2000</ResetDelay>

terjeio avatar Nov 10 '21 14:11 terjeio

Same issue on the edge version, based on event viewer it looks like it's some occurring when creating the port selection window.

Application: ioSender.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.ArgumentOutOfRangeException at System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument, System.ExceptionResource) at System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(Int32) at CNC.Core.SerialPorts.Refresh() at CNC.Core.SerialPorts..ctor() at CNC.Controls.PortProperties..ctor() at CNC.Controls.PortDialog..ctor() at CNC.Controls.AppConfig.SetupAndOpen(System.String, CNC.Core.GrblViewModel, System.Windows.Threading.Dispatcher) at GCode_Sender.MainWindow..ctor()

Exception Info: System.Windows.Markup.XamlParseException at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)Application: ioSender.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.ArgumentOutOfRangeException at System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument, System.ExceptionResource) at System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(Int32) at CNC.Core.SerialPorts.Refresh() at CNC.Core.SerialPorts..ctor() at CNC.Controls.PortProperties..ctor() at CNC.Controls.PortDialog..ctor() at CNC.Controls.AppConfig.SetupAndOpen(System.String, CNC.Core.GrblViewModel, System.Windows.Threading.Dispatcher) at GCode_Sender.MainWindow..ctor()

Exception Info: System.Windows.Markup.XamlParseException at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean) at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext) at System.Windows.Application.LoadComponent(System.Uri, Boolean) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at System.Windows.Application.Run(System.Windows.Window) at GCode_Sender.App.Main()

timm052 avatar Nov 10 '21 14:11 timm052

When I tried to start on my Win7 laptop it crashes with the same stack trace, the reason was that there was no serial ports available. I'll have to add a check for that.

Do you have a controller connected and does it shows up in the ports list in the Device Manager?

terjeio avatar Nov 10 '21 16:11 terjeio

hmm yeah i was setting it up upstairs not connected to the controller weird given my desktop pc can run it fine with no controller attached. i'll try using it connected in the morning. some sort of error is probs the ideal way to do it though over a silent crash

timm052 avatar Nov 10 '21 16:11 timm052

Desktop PCs always has COM1 available even if there is no hardware available for it?

I'll add a check for number of ports available in the next build. The Port drop-down will show up empty and clicking OK will just close the sender down. You will still be able to connect via a network connection if the controller supports it.

terjeio avatar Nov 10 '21 16:11 terjeio

Having a similar issue but the controller is connected. However I do not get far enough that I get to select ports. Event logs below

// Information

Fault bucket 1184787194649956434, type 5 Event Name: CLR20r3 Response: Not available Cab Id: 0

Problem signature: P1: ioSender.exe P2: 2.0.35.0 P3: 618a0b30 P4: CNC.Core P5: 2.0.36.0 P6: 618a0b2a P7: 48c P8: 94 P9: N3CTRYE2KN3C34SGL4ZQYRBFTE4M13NB P10:

Attached files: \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER783.tmp.dmp \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER949.tmp.WERInternalMetadata.xml \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER96A.tmp.xml \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER968.tmp.csv \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER9A7.tmp.txt

These files may be available here: \?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_ioSender.exe_b23ff906614b18c31583a5df9acc0d072ffc43f_b061ab13_e5f69778-5807-4f28-9fa7-1bb8d08504d4

Analysis symbol: Rechecking for solution: 0 Report Id: 7db3e963-e58f-406b-91dd-e41ff188e2d5 Report Status: 268435456 Hashed bucket: d995224f46d3d921e07135ad1f8ad052 Cab Guid: 0

// Error

Faulting application name: ioSender.exe, version: 2.0.35.0, time stamp: 0x618a0b30 Faulting module name: KERNELBASE.dll, version: 10.0.19041.1288, time stamp: 0x3e55bd0b Exception code: 0xe0434352 Fault offset: 0x0012b5b2 Faulting process id: 0x3898 Faulting application start time: 0x01d7d8c2ffcc298b Faulting application path: C:\Users\jonas\Desktop\ioSender Edge.36p9\ioSender Edge\ioSender.exe Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll Report Id: 7db3e963-e58f-406b-91dd-e41ff188e2d5 Faulting package full name: Faulting package-relative application ID:

// Error

Application: ioSender.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.NullReferenceException at CNC.Core.SerialPorts.Refresh() at CNC.Core.SerialPorts..ctor() at CNC.Controls.PortProperties..ctor() at CNC.Controls.PortDialog..ctor() at CNC.Controls.AppConfig.SetupAndOpen(System.String, CNC.Core.GrblViewModel, System.Windows.Threading.Dispatcher) at GCode_Sender.MainWindow..ctor()

Exception Info: System.Reflection.TargetInvocationException at System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef) at System.RuntimeType.CreateInstanceSlow(Boolean, Boolean, Boolean, System.Threading.StackCrawlMark ByRef) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean, Boolean, Boolean, System.Threading.StackCrawlMark ByRef) at System.Activator.CreateInstance(System.Type, Boolean) at System.RuntimeType.CreateInstanceImpl(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, System.Object[], System.Threading.StackCrawlMark ByRef) at System.Activator.CreateInstance(System.Type, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, System.Object[]) at System.Activator.CreateInstance(System.Type, System.Object[]) at System.Xaml.Schema.SafeReflectionInvoker.CreateInstanceCritical(System.Type, System.Object[]) at System.Xaml.Schema.SafeReflectionInvoker.CreateInstance(System.Type, System.Object[]) at System.Xaml.Schema.XamlTypeInvoker.CreateInstance(System.Object[]) at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CreateInstanceWithCtor(System.Xaml.XamlType, System.Object[]) at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CreateInstance(System.Xaml.XamlType, System.Object[]) at MS.Internal.Xaml.Runtime.PartialTrustTolerantRuntime.CreateInstance(System.Xaml.XamlType, System.Object[]) at System.Xaml.XamlObjectWriter.Logic_CreateAndAssignToParentStart(MS.Internal.Xaml.Context.ObjectWriterContext) at System.Xaml.XamlObjectWriter.WriteStartMember(System.Xaml.XamlMember) at System.Xaml.XamlWriter.WriteNode(System.Xaml.XamlReader) at System.Windows.Markup.WpfXamlLoader.TransformNodes(System.Xaml.XamlReader, System.Xaml.XamlObjectWriter, Boolean, Boolean, Boolean, System.Xaml.IXamlLineInfo, System.Xaml.IXamlLineInfoConsumer, MS.Internal.Xaml.Context.XamlContextStack`1<System.Windows.Markup.WpfXamlFrame>, System.Windows.Markup.IStyleConnector) at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean) at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext) at System.Windows.Application.LoadComponent(System.Uri, Boolean) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at System.Windows.Application.Run(System.Windows.Window) at GCode_Sender.App.Main()

infamous-panda avatar Nov 13 '21 19:11 infamous-panda

Thanks, looks like it is related to #149. I have uploaded a new edge version I hope works - if not report back.

This version uses FTP to upload to the card from the SD Card tab when available.

terjeio avatar Nov 13 '21 20:11 terjeio

Thanks, looks like it is related to #149. I have uploaded a new edge version I hope works - if not report back.

This version uses FTP to upload to the card from the SD Card tab when available.

This one launches and FTP upload works!

I can only connect through ethernet, though. At startup it only lets me select COM1 which is not where my controller is.

infamous-panda avatar Nov 13 '21 20:11 infamous-panda

Hmm, this means that the loop enumerating the pins crashes after the first iteration. I added port names recently, somehow that is causing the crash for you. Can you post the list of available ports from the Device Manager so I can check if there is something I do not expect in that? Here is mine: image

terjeio avatar Nov 13 '21 21:11 terjeio

I have uploaded a new edge version, hopefully this adds ports that has no extended name or a name that triggers the exception that stops enumeration.

terjeio avatar Nov 13 '21 22:11 terjeio

Hmm, this means that the loop enumerating the pins crashes after the first iteration. I added port names recently, somehow that is causing the crash for you. Can you post the list of available ports from the Device Manager so I can check if there is something I do not expect in that? Here is mine: image

image

COM6 Right now. Sometimes its COM3 if I connect it via a HUB

infamous-panda avatar Nov 13 '21 23:11 infamous-panda

I have uploaded a new edge version, hopefully this adds ports that has no extended name or a name that triggers the exception that stops enumeration.

That one seems to work for me!

infamous-panda avatar Nov 13 '21 23:11 infamous-panda