问题
I have an application that is running absolutely fine on local computers, using a variety of environments (SQL, Windows). However, we have one particular environment where it fails to run, throwing up a c0000005 error in clr.dll.
Are there any techniques that I can use to identify what is going on in this particular (somewhat restricted) environment? The C# code is not hit, so there is something in the initial load and setup of the app that is failing.
I don't expect an answer to why it is failing, but some help on how I can find anything more than the very limited crash report. The code is using .net 4.6.2, so there should be very little (if any) direct interaction with the windows tools themselves. I suspect it is either a corrupt dll on the server or the app is trying to load something that is missing in this environment. Or, possibly, it is seeking to access something that it is not allowed to (it is only a problem across two servers).
回答1:
Windows 2008 is already creating a mini dump for you. Read here: https://msdn.microsoft.com/en-us/library/windows/desktop/ee416349(v=vs.85).aspx#writing_a_minidump
Find the minidump and open it in Visual Studio, dmpcheck, or another tool. Somewhere there should be something that says SEH or Access Violation in one of the stack traces. That will tell you the offending method or function.
来源:https://stackoverflow.com/questions/42397075/how-do-i-debug-an-environment-specific-bug