Category Archives: Debugging
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
Monitor Finalizers, contention and threads in your application
This post of the series details more complicated CLR events related to finalizers and threading.…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
How to beat !dumpheap -stat?… with ClrMD
When you are dealing with large memory dumps, figuring out what instances of which types…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
Grab ETW Session, Providers and Events
This post of the series shows how to easily listen to CLR events with the…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
Replace .NET performance counters by CLR event tracing
This post of our new series shows why performance counters might not be the best…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
Extending the new WinDbg, Part 3 – Embedding a C# interpreter
In part 1 and part 2, we’ve seen in detail how to customize the WinDBG…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
Performance Counters Hell
On Windows, performance counters are the building blocks of most monitoring dashboards. When you need…
![](https://labs.criteo.com/wp-content/uploads/2018/01/fig2largeB.jpg)
Spark Out of Memory
At Criteo, we have hundreds of machine learning models that we re-train several times a…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
Extending the new WinDbg, Part 2 – Tool windows and command output
In the first part of the series, we saw how to extend the new WinDbg…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
ClrMD Part 9 – Deciphering Tasks and Thread Pool items
This post of the series shows how to easily list pending tasks and work items…
![](https://labs.criteo.com/wp-content/uploads/2017/02/Dotnet.png)
ClrMD Part 8 – Spelunking inside the .NET Thread Pool
This post of the series shows how to easily list pending tasks and work items…