All Projects → chrisnas → Debuggingextensions

chrisnas / Debuggingextensions

Licence: mit
Host of debugging-related extensions such as post-mortem tools or WinDBG extensions

Projects that are alternatives of or similar to Debuggingextensions

Arduino Timer
Non-blocking library for delaying function calls
Stars: ✭ 133 (-24.86%)
Mutual labels:  timer
Travianz Legacy
Join our Discord Server: https://discordapp.com/invite/9fbJKP9 | New repo: https://github.com/iopietro/Travianz
Stars: ✭ 150 (-15.25%)
Mutual labels:  timer
Windbg Scripts
A bunch of JavaScript extensions for WinDbg.
Stars: ✭ 158 (-10.73%)
Mutual labels:  windbg
Speed Measure Webpack Plugin
⏱ See how fast (or not) your plugins and loaders are, so you can optimise your builds
Stars: ✭ 1,980 (+1018.64%)
Mutual labels:  timer
Takt
Track your tasks and time
Stars: ✭ 142 (-19.77%)
Mutual labels:  timer
Bhoptimer
A bunnyhop timer plugin for Counter-Strike: Source, Counter-Strike: Global Offensive and Team Fortress 2.
Stars: ✭ 151 (-14.69%)
Mutual labels:  timer
Archer
基于协程Swoole的Task组件,支持多种模式。轻松实现协程Task的队列、并发、Defer、计时器等 | Swoole coroutine task kit - Swoole Humanization Library
Stars: ✭ 132 (-25.42%)
Mutual labels:  timer
Twindbg
PEDA-like debugger UI for WinDbg
Stars: ✭ 171 (-3.39%)
Mutual labels:  windbg
Timer App
A simple Timer app for Mac
Stars: ✭ 2,047 (+1056.5%)
Mutual labels:  timer
Http Timer
🕐 Performance timings for HTTP requests
Stars: ✭ 156 (-11.86%)
Mutual labels:  timer
Reverse Engineering Arsenal
Useful Scripts for helping in reverse engeenering
Stars: ✭ 137 (-22.6%)
Mutual labels:  windbg
Amazing Time Picker
Timepicker (Clock Picker) for Angular 2, Angular 4 and Angular 5, Angular 6, Angular 7 - Compatible with Angular Material
Stars: ✭ 142 (-19.77%)
Mutual labels:  timer
Launchbar
LaunchBar Actions
Stars: ✭ 155 (-12.43%)
Mutual labels:  timer
Flipdown
⏰ A lightweight and performant flip styled countdown clock
Stars: ✭ 136 (-23.16%)
Mutual labels:  timer
Sc
Common libraries and data structures for C.
Stars: ✭ 161 (-9.04%)
Mutual labels:  timer
Timertool
Little tool to get and set the windows timer values
Stars: ✭ 132 (-25.42%)
Mutual labels:  timer
Pomd
🍅 A good old cli based Pomodoro timer with native notifications
Stars: ✭ 151 (-14.69%)
Mutual labels:  timer
Schedex
Simple scheduling for Elixir
Stars: ✭ 173 (-2.26%)
Mutual labels:  timer
Clock
A low consumption, low latency support for frequent updates of large capcity timing manage
Stars: ✭ 161 (-9.04%)
Mutual labels:  timer
Ects
Elastic Crontab System 简单易用的分布式定时任务管理系统
Stars: ✭ 156 (-11.86%)
Mutual labels:  timer

DebuggingExtensions

The few "debugging extensions" that have been created at Criteo to help post-mortem .NET applications analysis are now available:

  • as a stand alone tool to load a .NET application memory dump and start automatic thread, thread pool, tasks and timer analysis. zip

  • as a WinDBG extension to get the same level of details plus more commands such as getting a method signature based on its address. zip

  • as a .NET Core console tool to load a .NET application memory dump and show merged threads call stack à la Visual Studio "parallel stacks" (works also on Linux) zip. Note that you could install it as a global CLI tool

    • "dotnet tool install --global dotnet-pstacks" to install it
    • "dotnet pstacks <pid or .dmp file path>" to get your parallel stacks
  • as a .NET standard assembly to build and render parallel stacks from a memory dump file or a live process (on Windows only). zip More analyzers and commands will be added as needed.

  • as a GUI tool first published in 2011 to chase .NET memory leaks. The source code is now available and dumps are droppable into the snapshot listview to compare them automatically.

  • as a .NET Core console tool to analyze duplicated strings in a .NET application (live/memory dump) (works also on Linux) Note that you could install it as a global CLI tool

    • "dotnet tool install --global dotnet-dstrings" to install it
    • "dotnet dstrings <pid or .dmp file path>" to get the statistics

Introduction

Most of the code is detailed in the blog series related to ClrMD:

Part 1: Bootstrap ClrMD to load a dump.

Part 2: Find duplicated strings with ClrMD heap traversing.

Part 3: List timers by following static fields links.

Part 4: Identify timers callback and other properties.

Part 5: Use ClrMD to extend SOS in WinDBG.

Part 6: Manipulate memory structures like real objects.

Part 7: Manipulate nested structs using dynamic.

Part 8: Spelunking inside the .NET Thread Pool.

Part 9: Deciphering Tasks and Thread Pool items.

part 10: Getting another view on thread stacks with ClrMD

The detailed features are available either as a stand alone tool or a WinDBG extension. More commands will be added as needed.

Source Code

The DebuggingExtensions Visual Studio 2017 solution contains three projects:

  1. ClrMDStudio: WPF application that loads a dump file on which commands to be executed

  2. gsose: "Grand Son Of Strike Extension" for WinDBG that exposes the same commands (and more)

  3. pstacks: .NET Core console application that loads a dump file (+ attachs to a live process on Windows) and shows merged parallel stacks

  4. ParallelStacks.Runtime: .NET Assembly (and available as a nuget too) to let you build and render parallel stacks from your own code

  5. LeakShell: .NET WinForms application to easily spot leaky class instances

  6. dstrings: .NET Core console application that displays duplicated strings statistics

These projects depends on Nuget packages:

  • ClrMD: C# library to explore dump files.
  • DynaMD: C# dynamic-based helpers on top of ClrMD.
  • ClrMDExports: Helper to write WinDBG/LLDB extensionss on top of ClrMD.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].