Mr R
Mr R

Reputation: 311

C++ Application crash where to start looking? MSVCR90.dll

This is a very open ended question and I am really just looking for how to approach locating the issue.

The application runs for a day or so and then will crash while being used. The point in the application that it crashes is not the same each time. The memory that the application is using is not increasing.

C++ is not my standard dev language so any pointers would be appreciated.

The run time error I am given is detailed below. Having googled this I can see that 40000015 is a generic I don't know what has happened style error. Is there anyway I can use the additional information (1-4) to assist in locating the issue?

Any help is much appreciated!

Thanks

Problem signature:
Problem Event Name:         APPCRASH
Application Name:           Main.exe
Application Version:        1.1.10.0
Application Timestamp:      5278d640
Fault Module Name:          MSVCR90.dll
Fault Module Version:       9.0.30729.4940
Fault Module Timestamp:     4ca2ef57
Exception Code:             40000015
Exception Offset:           0005beae
OS Version:                 6.1.7601.2.1.0.256.48
Locale ID:                  2057
Additional Information 1:   3793
Additional Information 2:   379382cf89267e4a4b730ab2a7cc6828
Additional Information 3:   f05b
Additional Information 4:   f05b042c097ccdb870355bd0f539be8d

Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt

Upvotes: 2

Views: 5426

Answers (1)

marcinj
marcinj

Reputation: 49976

I would start by running it under debugger and leave it running for a day. Remember to enable all exceptions to catch - in my VS 2005 its in Debug->Exceptions, add handler for 40000015 exception.

If you cannot run it under debugger, ie. it happens only on client PC (still you can use remote debugging), then you can implement exception hanlder using : AddVectoredExceptionHandler, then use StackWalk64 to log call stack. If you can compile with symbols, then such stack will contain full path to the source of exception. It will be inside MSVCR90.dll, but will originate probably somewhere in your code. If you cannot include symbols then you can always use .map files or windbg with locally stored .pdb files. Of course this is a lot of work especially if C++ is not your main language, so the first suggestion is the best for you.

Ok, you can also use MiniDumpWriteDump and then use windbg instead of StackWalk64.

Upvotes: 1

Related Questions