태그 : Tools 요약보기전체보기목록닫기

1 2

[Troubleshooting Tools] Dr. Watsn (홈즈는 ?)

Dr. Watson은 기본적인 Crash Handler로 Registry에 다음과 같이 설정함으로써 Crash가 발생했을 때, Crash Dump를 수집할 수 있도록 도와 주는 Tool입니다.  ** Crash 란? User Mode에서 Crash란 특정 Process가 예기치 않게 OS에 의해서 종료(terminated)되거나 Hang을 유발...

!heap

[book]Advanced Windows Debugging-Heap Corruption 에서 추가적으로 몇가지 정보를 업데이트 하면,  0:000> sxe av  <---- Access Violation 발생시 Break!!0:000> gModLoad: 636e0000 63714000   C:...

Stack overflow: 사라진 Function 정보

Stack overflow: 사라진 Function 정보 WinDBG로 Debugging할 때 가장 많이 사용하는 command 는 k command 입니다. 이유는 적어도 문제가 생긴 시점까지 진행된 Function을 확인해 보는 것이 중요할 것이고, 해당 Function들이 호출될 때 parameter들이 정상적으로 넘어 왔는지 한눈에 볼 ...

Conditional breakpoint

Conditional breakpoint Debugging tools for windows 에서 확인해 보면, conditional breakpoint is created by combining a breakpoint command with either j (Execute If - Else) or .if.Then, add a gc&nb...

Bp at the Main(entry point) function of managed application

console managed application의 Main function에 bp를 걸고 싶은 데, 잘 안된다는 문의에 몇자 적어봤습니다. 아래 같은 console program이라고 가정으로 하면 ..  namespace InvokeDemo{    class Program    {&nbs...

!뱅 커맨드

이곳 블로그 글을 보면, 가끔 !objsize 라든지 !gchandles 와 같은 말을 쓰는 것을 볼 수 있습니다. 이것은 windbg에서 debugger extension에 의해서 제공되는 커맨드로써 debugging 할 때 사용됩니다. 주로 managed application debugging시에 필요한 SOS.dll 이라는 extension에서 사...

Reflector!!

Managed Callstack 에서 보면, 단지 !u를 통해 얻어낸 assembly code만으로 코드를 이해하는 것은 쉽지 않은 일입니다. .NET은 reflection의 기능을 제공하기 때문에 Code를 역으로 generation할 수 있는 데, Reflector(-http://www.aisto.com/roeder/dotnet/ )라는 T...

Managed Callstack

Debugging을 위해서 사용하는 Tool은 보통 WinDBG를 사용합니다. 일반적으로 WinDBG는 Function Call의 흐름에 따른 Callstack과 각 Callstack Frame에 해당하는 Register 및 Locals의 정보를 확인할 수 있기 때문에 문제가 발생한 위치에서 정보를 verify 해 감으로써 원인을 밝혀낼 수 있도록 합니...

Long COM+ Call times

COM+ debugging에서 worker process의 hang 현상에 대한 내용입니다. 먼저, COM+ Application이 hang이라고 느껴지면, 무엇보다도 hang이 된 동안 2~3차례 메모리 덤프를 수집하게 됩니다. * NOTE: 메모리 덤프 수집에 대한 것은 다음의 문서를 참조하십시오.How to use ADPlus t...

FailFast 는 Safeguard

COM+ application을 위한 surrogate process는 이를 access하는 Client에 의해 언제라도 invoke 될 수 있는 기능이 있습니다. 그러므로, unhandled exception에 의해 quit되더라도 다른 client에 의해 언제라도 새로운 process가 invoke 되므로, 특별한 메시지를 client에 전달하지 않...
1 2