2009-03-19 3 views
2

마우스 클릭 이벤트와 관련 있다고 생각되는 코드 블록 내에서 문제가 발생하지만 코드 내에서 정확한 이벤트를 캡처 할 수 없습니다. C# 디버거를 사용하여 코드를 단계별로 실행하고 이벤트 중 하나가 끝나면 코드가 잠 깁니다.코드에서 발생 된 이벤트를 모니터링하는 소프트웨어

내 게시물의 목적은 내 프로세스를 볼 소프트웨어가 있는지 물어보고 F11 키를 누른 후 코드가 멈추었을 때 발사되는 이벤트를 알려주는 것입니다. SysInternals의 procmon.exe을 시도했지만 어떤 이벤트가 발생하는지 알려주지 않습니다.

답변

2

Spy ++를 사용해 보셨습니까? Visual Studio (최소한 2003 & 2005)와 함께 제공되는 도구입니다. 내 기본 2003 및 2005 설치에서 Spy ++는 다음 위치에 있습니다. 시작 | 프로그램 파일 | Microsoft Visual Studio 200X | Visual Studio 도구 | Spy ++

Spy ++를 실행 한 후 검색 메뉴에서 창 찾기 ...를 선택하십시오. "파인더 도구"를 이벤트를보고자하는 창이나 컨트롤로 드래그하고 확인을 클릭하십시오. 트리에서 선택한 항목을 마우스 오른쪽 버튼으로 클릭하고 "메시지"를 선택하십시오. 이렇게하면 관심있는 창을 쳤을 때 메시지가 표시된 창이 열립니다.

Spy ++에서 필요한 것을 얻지 못하면 Managed Spy은 무엇입니까? Spy ++와 같지만 관리되는 코드에만 사용됩니다. 나는 그것을 시도하지 않았다.

[It]은 .NET 기반 클라이언트 응용 프로그램의 컨트롤에 대한 트리보기를 표시합니다. 모든 컨트롤을 선택하고 속성을 가져 오거나 설정할 수 있습니다. 또한 컨트롤이 발생시키는 필터링 된 이벤트 집합을 기록 할 수 있습니다.

+0

@ 제프 - 고마워요! Spy ++는 내가 깨닫지 못했던 사건 무한 루프를 보았습니다. –

+0

나는 그것이 당신에게 필요한 것을 가지고있어서 기뻐요! – JeffH

+0

방금 ​​Managed Spy를 시도해 보니 그 도구도 훌륭하게 작동합니다! Spy ++보다 사용자 친화적이고 .NET 지향적인데, 좋은 점이 있습니다. –

1

멀티 스레딩을 사용하고 있습니까? 그렇다면 디버거가 개체의 값에 액세스하려고 시도 할 때 컨트롤 및 다른 Windows Forms 개체를 폼 스레드 외부로 전달하지 마십시오. 그러면 디버거가 잠시 중단 될 수 있습니다.

+0

@Nick Bolton - Nope ... 앱이 멀티 스레드가 아닙니다. 감사!! –

1

CLRProfiler 원하는대로 할 수 있습니다.

공구 관련 상태

CLR 프로필러 할당 유형의 할당과 그래프를 호출 타임 라인 도시 GC를 히스토그램을 포함하는 할당 프로필 유용한 뷰들을 포함

콜렉션 이후에 상태의 관리 힙 상태와 당 메소드 할당을 표시하고 호출 을 표시하는 호출 트리가 있습니다.

메모리 사용이 정말이 설명에 판매하지만,이 '호출 트리', 그리고 how to use 거기에이 링크를 언급하고있다가,

호출 트리보기는 텍스트 기반, 제공 언급 연대순, 계층 적보기 응용 프로그램의 실행.

행운을 빈다.

0

log4net과 같은 로깅 도구를 사용하지 않는 이유는 무엇입니까?