멀티 스레드 C# 프로젝트가 있습니다. 불필요하게 공유 된 객체를 잠근 잠금을 제거하고 공유 객체를 단일 스레드로 만들려고했습니다. 이벤트 뷰어 나 디버그에서 실행되지 않는 것이 이제 프로세스가 충돌하고 오류없이 실행됩니다. 누구든지 나를 진단 할 수있는 방법을 제안 할 수 있습니까? 왜냐하면 비주얼 스튜디오만으로는 아무 것도하지 않고 프로세스를 멈추게 해줌으로써 나를 붙잡을 수 있기 때문입니다. 마지막 수단은 WinDbg이며이를 피하고 싶습니다.디버그시 C# 응용 프로그램이 충돌 함
0
A
답변
1
당신이 처리되지 않은 응용 프로그램 도메인 예외로 훅을 시도 할 수 있습니다 - 또한 http://msdn.microsoft.com/en-GB/library/system.appdomain.unhandledexception.aspx
체크 아웃 처리되지 않은 스레드 예외 : https://msdn.microsoft.com/en-GB/library/system.windows.forms.application.threadexception.aspx
(응용 프로그램 도메인 링크에서 예제 코드)
using System;
using System.Security.Permissions;
public class Example
{
[SecurityPermission(SecurityAction.Demand, Flags=SecurityPermissionFlag.ControlAppDomain)]
public static void Main()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
try {
throw new Exception("1");
} catch (Exception e) {
Console.WriteLine("Catch clause caught : {0} \n", e.Message);
}
throw new Exception("2");
}
static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception) args.ExceptionObject;
Console.WriteLine("MyHandler caught : " + e.Message);
Console.WriteLine("Runtime terminating: {0}", args.IsTerminating);
}
}
// The example displays the following output:
// Catch clause caught : 1
//
// MyHandler caught : 2
// Runtime terminating: True
//
// Unhandled Exception: System.Exception: 2
// at Example.Main()
0
Visual Studio에서 디버거 중단을 유발하는 예외를 확인하는 것도 좋은 방법입니다.
당신은 Debug->Exceptions...
이 나 Crtl+D, E
아마 비주얼 스튜디오와 단지
관련 문제
- 1. Windows에서 응용 프로그램이 충돌 함
- 2. 열린 SerialPort에서 C# 응용 프로그램이 충돌 함
- 3. Windows CE에서 C# 응용 프로그램이 충돌 함
- 4. 응용 프로그램이 Dealloc에서 충돌 함
- 5. RegEnumValue 응용 프로그램이 충돌 함
- 6. C++ 디버거에서만 프로그램이 충돌 함
- 7. 응용 프로그램이 ClassNotFoundException과 충돌 함
- 8. image.setImageDrawable 응용 프로그램이 충돌 함
- 9. SensorManager에서 응용 프로그램이 충돌 함
- 10. MediaElement.SetSource 응용 프로그램이 충돌 함
- 11. 응용 프로그램이 계속 충돌 함
- 12. AlertDialog 응용 프로그램이 충돌 함
- 13. UITableViewController 응용 프로그램이 충돌 함
- 14. C 프로그램이 계속 충돌 함
- 15. C 프로그램이 scanf에서 충돌 함
- 16. C++ 코드 삽입으로 인해 충돌 한 응용 프로그램이 충돌 함
- 17. 프로그램이 충돌 함
- 18. CreateDirectory 프로그램이 충돌 함
- 19. 버튼 클릭시 응용 프로그램이 충돌 함
- 20. ClassCastException으로 인해 시작시 응용 프로그램이 충돌 함
- 21. 설치 후 windows 응용 프로그램이 충돌 함
- 22. 다른 컴퓨터에서 OpenGL 응용 프로그램이 충돌 함
- 23. 디버깅시 프로그램이 충돌 함
- 24. viewmodel을 도입하면 응용 프로그램이 충돌 함
- 25. 종료 후 C++ 프로그램이 충돌 함
- 26. 기본 C++ 프로그램이 충돌 함 2008 2008
- 27. 교체 할 때 응용 프로그램이 충돌 함
- 28. fstream에 액세스하려고하면 프로그램이 충돌 함 - C++
- 29. Free() 프로그램이 충돌 함
- 30. QDomElement.setAttribute 프로그램이 충돌 함
당신이 모든 예외에 휴식 비주얼 스튜디오를 사용하는지 확인하여 충돌의 원인이되는 예외를 건너 뛰고이 운터를 찾을 수 있습니다. ctrl + alt + e를 눌러 예외 창을 엽니 다. – SgtRock