Browse by Tags
All Tags »
WinDbg (RSS)
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Breaking on an Exception. Part 2 . LOCKS · We can see threads waiting for managed locks : All managed objects have a syncblock (4 bytes) before their Method Table and properties. It
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Breaking on an Exception. Part 1 . BREAKING ON AN EXCEPTION. Part 2 What happens if !PrintException doesn’t return anything, or when we break (i.e. with a breakpoint or manually – Ctrl+Break)
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Managed Heap. Part 5 . BREAKING ON AN EXCEPTION. Part 1 We can only break on exceptions when doing live debugging, but many of the commands explained here can be used when doing dump
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Managed Heap. Part 4 . MANAGED HEAP. Part 5 · We can troubleshoot Loader Heap issues : An assembly can’t be unloaded while the AppDomain where it was created is still alive. We will
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Managed Heap. Part 3 . MANAGED HEAP. Part 4 · We can troubleshoot Heap issues : These are some of the important performance counters we can check with Performance Monitor when having
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Managed Heap. Part 2 . MANAGED HEAP. Part 3 · We can take a look to which objects reference which objects in the heap: We may see many objects in the heap that we think should have
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Managed Heap. Part 1 . MANAGED HEAP. Part 2 · We can take a look to the objects in the heap : We can see all objects in the heap: 0:004> !DumpHeap Address MT Size 7b463c40 790fd0f0
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Thread Stacks. Part 2 . MANAGED HEAP. Part 1 .NET won’t use the NT Heap . It saves some virtual memory for its own managed heap instead. Objects in the managed heap are part of a Garbage
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Thread Stacks. Part 1 . THREAD STACKS. Part 2 · We can inspect the objects with unmanaged commands : The reference to an object points to the method table (which is a pointer to the
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Threads. Part 2 . THREAD STACKS. Part 1 · We can take a look to the objects in the stack : The CLR is stack-based. All references to objects are in the stack , but objects themselves
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Threads. Part 1 . THREADS. Part 2 · We can see all .NET related threads in our process: There are different types of .NET threads : finalizer, GC, debugger, timer, threadpool, primary
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Call Stacks. Part 3 . THREADS. Part 1 · We can see all threads in our process: If we reach a breakpoint or break on an exception , WinDbg command prompt shows the ID of the thread which
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Call Stacks. Part 2 . CALL STACKS. Part 3 · Let's review previous commands: Let’s see a sample where the debugger broke when “PlayWithArray” raised an exception. We can use the return
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Call Stacks. Part 1 . CALL STACKS. Part 2 · We can see the source code of a method in the call stack: First of all, Source Code mode has to be enabled. We’ll need symbols and source
Read More...
Hi all, This post is a continuation of MANAGED DEBUGGING with WINDBG. Setting a Breakpoint. Part 3 . CALL STACKS. Part 1 · We can see the call stack of the current thread : When the debugger breaks for any reason (i.e. we reached a breakpoint, we got
Read More...