Дебаг и устранение ошибки в программе C#
2547 UAHИмеется программа написанная на C# с применением .NET Framework 4.7 и дополнительных библиотек: Dns.Client и Buffers
Программа резолвит DNS и проверяет жив ли домен.
В логике программе происходит переполнение буфера, согласно дебаггу через Visual Studio:
System.OutOfMemoryException
HResult=0x8007000E
Message=Exception of type 'System.OutOfMemoryException' was thrown.
Source=Layer
StackTrace:
at Layer.mode.ModeEnumerate.<>c__DisplayClass3_0.<Start>b__0(Object _) in C:\Users\jessi\Documents\Layer_project\Layer_stable 2020\Layer_stable\Layer\mode\mode_enumerate.cs:line 29
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
——————-
System.OutOfMemoryException
HResult=0x8007000E
Message=Exception of type 'System.OutOfMemoryException' was thrown.
Source=System.Windows.Forms
StackTrace:
at System.Windows.Forms.Internal.DeviceContexts.OnDcDisposing(Object sender, EventArgs e)
at System.Windows.Forms.Internal.DeviceContext.Dispose(Boolean disposing)
at System.Windows.Forms.Internal.WindowsGraphics.Dispose(Boolean disposing)
at System.Windows.Forms.Internal.WindowsGraphics.Dispose()
at System.Windows.Forms.Control.PaintBackColor(PaintEventArgs e, Rectangle rectangle, Color backColor)
at System.Windows.Forms.Control.PaintBackground(PaintEventArgs e, Rectangle rectangle, Color backColor, Point scrollOffset)
at System.Windows.Forms.Control.PaintBackground(PaintEventArgs e, Rectangle rectangle)
at System.Windows.Forms.Control.OnPaintBackground(PaintEventArgs pevent)
at System.Windows.Forms.ScrollableControl.OnPaintBackground(PaintEventArgs e)
at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
at System.Windows.Forms.Control.WmEraseBkgnd(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
This exception was originally thrown at this call stack:
[External Code]
1. Требуется ручной дебаг для выявления ошибки и устранении ее.
2. Шапка программы не работает как положенно: при двойном клике по шапке программа правильно не разворачивается во весь экран и не сворачивается. Необходимо это исправить.
3. Так же требуется переписать дизайн на более современный, заменив стандартный.
-
Assuming your machine isn't actually a 32-bit machine, it's possible that you've changed your build to target 32-bit environments. That would leave you with only 2 GB instead of the usual 4 GB.
It's also possible that your memory is heavily fragmented, which apparently can leave you actually having less memory than the total available.
-
Another way, you can dispose
-
А какая версия STUDIO?
Я посмотрел в интернете по названию ошибки. Народ вроде пишет, что нужно изменить одну настройку проекта и перекомпилировать:

На примере VS 2013:



-