Exception access violation (msvcrt.dll) - vb.net

I received silent crashes, and in order to find their reasons, I collected a crash dump. When I try to debug it, I get the error
Exception thrown at 0x748E89EA (msvcrt.dll) in app.exe.10228.dmp:
0xC0000005: Access violation reading location 0x0457351A.
I can’t find out exactly where this error occurs, because it occurs spontaneously during working.
After all, in vb.net there is no direct memory access, where could this error be? Is it possible that it is from the dll files that the program uses?
Call stack of thread in which appeared exception:
ntdll!NtWaitForMultipleObjects+c
KERNELBASE!WaitForMultipleObjectsEx+133
KERNELBASE!WaitForMultipleObjects+18
kernel32!WerpReportFaultInternal+3b7 kernel32!WerpReportFault+9d
kernel32!BasepReportFault+19 KERNELBASE!UnhandledExceptionFilter+2a2
ntdll!__RtlUserThreadStart+3a4e6 ntdll!_RtlUserThreadStart+1b

Related

Intermittent Access Violation ID2D1RenderTarget::EndDraw

I have my Direct2D drawing loop which is running successfully for hours, even days, except for the intermittent access violation error. There is no pattern for this to happen, mostly after several hours, sometimes after just a few seconds.
Unhandled exception at 0x5f990099 (d3d11.dll) in XX.exe: 0xC0000005: Access violation reading location 0x00000fe0.
I am keeping a log of the return HRESULT of EndDraw if not successful. All the previous EndDraws seem to return S_OK. There aren't any other failed Direct2D API calls prior to this one.
ID2D1RenderTarget object is not NULL.
The Drawing loop is protected in a critical section.
Any ideas how to catch where this is coming from? Maybe the device or render target is entering some invalid state which I need to discover?

COM Exception silently eaten

I have a native exe loading managed code that calls a COM object. The managed code attempts to set up a call back using IConnectionPoint. However the Advise method on the COM side returns E_FAIL. A manged COMException is thrown but my code does not catch the exception and I am not sure where it is handled. In fact I am modifying the COM code to set up a status flag to indicate connection status... a kludge I could avoid if the COMException could only be caught. I can see the COM exception in Windbg but the stack trace on the exception is empty. Any suggestion as to how to find out where the exception is being swallowed.

How to catch errors in protocol.ReconnectingClientFactory

I've been looking around for a solution for several hours now, and maybe I'm just missing something..
I've a factory that implements protocol.ReconnectingClientFactory which works just fine, however, whenever the program ends running, I get a bunch of Unhandled error in Deferred messages in my log for each disconnection that occurred during runtime, such as
2012-06-14 12:28:51+0100 [-] Unhandled error in Deferred:
2012-06-14 12:28:51+0100 [-] Unhandled Error
Traceback (most recent call last):
Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.
Is there any way I could somehow "handle" these during runtime, so that my log wouldn't be spammed with this at the end.. (or avoid it being spammed somehow..) I really don't care what the solution is, I already have the following method that logs everything for me
def clientConnectionLost(self, connector, reason):
log.msg('Lost connection. Reason: %s' % reason)
is there anything I could do with the "reason" in there, which is the Failure object, so that the error would be properly handled..?
Anyway, I don't claim to be anywhere near proficient in Twisted, so any help would be greatly appreciated.
Thanks a lot in advance.
The message Unhandled error in Deferred is telling you where the error comes from and even hinting at how to eliminate it. When a Deferred is garbage collected with a Failure result, it logs these messages - because the error wasn't handled.
Add an error handler (and errback) to the Deferred that fails this way, and handle the error however you want (including ignoring it, if that's what's appropriate for your application).

Determine which line causes a vb.net program to crash

I have created a vb.net program and released it to the customer. They are running the exe and at times the program crashes unexpectedly and display the message: "... has encountered a problem and needs to close"
I know I should have added code to handle the exception, but is there a way that I can find out which line in the program caused the error? What is generally as good way to track errors in a program after it has been released?
Thanks
for this kind of i-don't-know-where-to-look issue, i trapped exception at application level with the Application.DispatcherUnhandledException event :
http://msdn.microsoft.com/en-us/library/system.windows.application.dispatcherunhandledexception.aspx
and then in the event handler i get the StackTrace and display it in a MessageBox / dump it in a file, along with the exception.Message.
Next i offer the user the choice to re-launch the application.

How to debug exception on other thread?

I have a lot of shortlived threads that updates my program, by events fired from a socket connection. My problem is I don't know how to debug this, like how to get the proper information on where in the code the exceptions occur. Because I get for example an exception like below, and this will just be the print in the Immidiate Window. There is no pop-up window, and it does not highlight any line in the code or show even what method it was in.
What am I missing? What I can do to see these things? And what improvements does VS2010 give on this situation, if any?
A first chance exception of type 'System.InvalidOperationException' occurred in System.Core.dll
A first chance exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll
A first chance exception of type 'System.Threading.ThreadAbortException' occurred in Krs.Ats.IBNet.dll
Go to "Debug -> Exceptions...", locate the "Common Language Runtime Exceptions" and check the "Thrown" mark. Now start debugging your application. Once any of CLR exception occurs the execution will stop on that line.