Visual Studio (표준 버전)에 액세스 할 수없는 Windows 응용 프로그램에 .NET Windows 응용 프로그램이 있으며이 응용 프로그램에만 설치할 수있는 유일한 방법은 Express입니다. Just-In-Time Debugging 옵션 (충돌시 디버그 버튼이있는 옵션). 따라서 스택 트레이스를보기 위해 실행할 수 있거나 첨부 할 수있는 Windows 응용 프로그램 디버깅 도구 또는 다른 것이 있는지 궁금합니다. 또한 내 응용 프로그램에서 PDB을 활성화했지만 자세한 정보를 제공하지 않으므로 처리되지 않은 예외로 인한 내 충돌을 추적 할 수 있습니다..NET 응용 프로그램의 스택 추적을 보는 방법
답변
을 windbg를 사용하고
당신은 당신은 또한 CLR Profiler
Stacktrace의 내용에 대해 좋은 결과를 제공합니까? 클래스 및 행 번호와 같은 이유로 내 크래시가 처리되지 않은 것입니다. – paradisonoir
@paradisonoir : Fyi, 행 번호는 어셈블리의 pdb가있는 경우에만 사용할 수 있습니다. 그렇지 않으면 스택 위치와 메소드 이름 만 가져옵니다. – eduncan911
+1은 OP의 문제를 해결하는 무료 프로파일 러를 언급하는데, 즉 스택 추적을 표시합니다. 기록을 위해, 여기 CLR Profiler 2.0에 대한 링크가 있습니다 : http://tinyurl.com/ClrProfiler2 – galaktor
은 아마 EQATEC Tracer가 당신을 도울 수 sos.dll 수 있습니다 시도 할 수 있습니다.
응용 프로그램을 시작했지만 충돌이 발생한 후 내 스택 추적의 출력이 없습니다. – paradisonoir
링크가 끊어졌습니다. –
예외를 catch하는 경우 예외 개체에는 스택 추적 (Exception.StackTrace)이 포함됩니다. 또한 Environment.StackTrace으로 액세스 할 수 있습니다.
아래 코드에는 스택 추적을 포함하여 예외를 이벤트 로그에 기록하는 처리되지 않은 예외에 대한 이벤트 처리기가 있습니다.
// Sample for the Environment.StackTrace property
using System;
class Sample
{
public static void Main()
{
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(UnhandledExceptions);
Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace);
throw new Exception("Fatal Error");
}
static void UnhandledExceptions(object sender, UnhandledExceptionEventArgs e)
{
string source = "SOTest";
if (!System.Diagnostics.EventLog.SourceExists(source))
{
System.Diagnostics.EventLog.CreateEventSource(source, "Application");
}
System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
log.Source = source;
log.WriteEntry(e.ExceptionObject.ToString(),
System.Diagnostics.EventLogEntryType.Error);
}
그래서 일부 처리되지 않은 예외도 인쇄 할 수 있습니까? – paradisonoir
예. 로깅 프레임 워크를 사용하여 오류 로그에 기록 할 수도 있습니다. –
@paradisonoir - 로그 (스택 추적 포함)를 이벤트 로그에 기록하는 처리되지 않은 예외 이벤트 처리기를 추가했습니다. –
.NET 응용 프로그램 예외 스택 스택은 이벤트 뷰어의 응용 프로그램 아래에 기록됩니다.
alt text http://eduncan911.com/blog/thumbnail/exception-in-iis-stackoverflow-logs.png
예외가 발생했을 때 당신이 직접 로그하면 끝이 난다고 생각합니다! –
내 앱에서 예외가 발생했는데 여기서는 표시되지 않습니다. – eduncan911
또한 내 ASP.net 응용 프로그램은 처리되지 않은 예외를 이벤트 로그에 자동으로 기록합니다. 코드가 필요하지 않습니다. – pyrocumulus
사용 :
.NET Framework 2.0 SDK에는 Microsoft CLR Debugger가 함께 제공됩니다. 그것은 Visual Studio 디버거와 비슷하게 작동합니다 (소스 파일은 읽기 전용 임에도 불구하고). 그래서 시도해 볼 수 있습니다.
응용 프로그램에 전역 예외 처리기를 추가 할 수도 있습니다. http://blogs.msdn.com/lexli/archive/2009/04/28/how-to-handle-net-unhandled-exceptions-gracefully.aspx –
- 1. .NET에서 응용 프로그램의 전체 스택 추적을 기록하는 방법
- 2. StackOverflowException의 스택 추적을 인쇄하는 방법
- 3. VS 2008의 디버그 모드에서 프로젝트의 스택 추적을 보는 방법
- 4. 별도의 콘솔에서 추적을 보는 방법
- 5. 응용 프로그램의 현재 스택 추적을 인쇄하는 쉬운 방법은 무엇입니까?
- 6. 오이 스택 추적을 없애기
- 7. 예외 스택 추적을 인쇄해야합니까?
- 8. QA 컴퓨터에서 스택 추적을 캡처하는 방법
- 9. 오류 페이지 - JSP에서 스택 추적을 인쇄하는 방법
- 10. 이클립스에서 전체 스택 추적을 표시하는 방법?
- 11. 모든 스레드의 스택 추적을 얻으십시오.
- 12. 속도 템플릿에 예외 스택 추적을 인쇄하는 방법
- 13. XCode 4에서 스택 추적을 확장하는 방법
- 14. R : 눈 패키지에서 스택 추적을 얻는 방법
- 15. OCaml에서 스택 추적을 얻으려면 어떻게해야합니까?
- 16. 예외를 던지지만 스택 추적을 유지하십시오.
- 17. 분할 오류의 스택 추적을 이해하십시오.
- 18. 스택 추적을 보존하는 JavaScript 재실행
- 19. 예외가 스택 추적을 지 웁니다.
- 20. Specman에서 스택 추적을 얻으려면 어떻게해야합니까?
- 21. 스택 추적을 해석하는 데 도움이됩니다.
- 22. TOMCAT에서 스택 추적을 어떻게 생성합니까?
- 23. .NET 응용 프로그램의 타이머
- 24. .NET 응용 프로그램의 TransactionScope
- 25. NET 응용 프로그램의 네트워크 사용률을 프로파일하는 방법
- 26. 웹 응용 프로그램 : 응용 프로그램의 버전 추적을 데이터베이스에 유지 하시겠습니까?
- 27. Windbg에서 객체를 생성 한 스택 추적을 추적하십시오.
- 28. 미니 덤프에서 스택 추적을 추출하는 방법은 무엇입니까?
- 29. C 및 C++ 응용 프로그램의 코어 덤프와 비슷한 lua에 대한 스택 추적을 얻을 수 있습니까?
- 30. 웹 시작에서 실행중인 클라이언트에서 Java 스택 추적을 얻는 방법?
중간 개발자들조차 어려울 수 있습니다. 어쩌면 그들은 DebugDiag 또는 다른 도구를 사용하여 크래시 덤프를 생성하고 WinDbg로 분석 할 수 있습니다. 그런 다음 간단한 "analyze -v"로 예외 정보를 출력 할 수 있습니다. –
Windbg에서 회선 번호를 생성 할 수 있습니까? 메소드 이름을 얻을 수는 있지만 라인 번호는 가져올 수 없기 때문입니다. – paradisonoir
기호가있는 경우에만 디버그 모드로 빌드해야합니다. –