Skip to content

En3Tho/PoshDotnetDumpAnalyzeViewer

Repository files navigation

PoshDotnetDumpAnalyzeViewer

This is a small gui.cs based ui to work with dotnet dump analyze

It's able to list output of all supported SOS commands and additionally custom parsers providing contextual subcommands like this:

img_1.png

    Install-Module -Name PoshDotnetDumpAnalyzeViewerModule
    Get-DotnetDumpAnalyzeViewer "path-to-dump-file"

Note that this viewer is completely dependent on dotnet-dump (tested on 7.0.421801) and it does not bundle sos or anything like that.

Command field:

  • Enter -> invoke command or get already existing tab
  • Ctrl + Enter -> invoke command and refresh existing tab (if it exist)

Tabs:

  • Ctrl + W -> close tab (help is not closeable)
  • Ctrl + R -> refresh tab (invoke command again, failed commands are not refreshable)

List view:

  • Enter -> invoke custom action or get subcommands view
  • Tab -> find next item using text from filter field

Filter field:

  • Enter -> filter items in list view
  • Tab -> find next item in list view and focus it

Subcommands dialog:

  • Enter -> execute subcommand
  • Tab -> copy subcommand's command string into command field (might be useful when you want to invoke command with custom flags)

Currently implemented custom parsers:

  • dumpheap Displays info about the garbage-collected heap and collection statistics about objects.
  • dumpmt Displays information about a method table at the specified address.
  • objsize Lists the sizes of the all the objects found on managed threads.
  • help Display help for a command.
  • setthread, threads Displays threads or sets the current thread.
  • clrthreads
  • syncblk
  • exit, q, quit Exit interactive mode.

There are many other commands that might have contextual subcommands so need to make more parsers. Any help is welcome! Not all of them can be parsed into something useful tho. Need more investigation.

Examples of possbily not parseable commands: setsymbolserver, logging

  • [] d, readmemory
  • [] db Dump memory as bytes.
  • [] dc Dump memory as chars.
  • [] da Dump memory as zero-terminated byte strings.
  • [] du Dump memory as zero-terminated char strings.
  • [] dw Dump memory as words (ushort).
  • [] dd Dump memory as dwords (uint).
  • [] dp Dump memory as pointers.
  • [] dq Dump memory as qwords (ulong).
  • [] clrmodules Lists the managed modules in the process.
  • [] dcd, dumpconcurrentdictionary Display concurrent dictionary content.
  • [] dcq, dumpconcurrentqueue Display concurrent queue content.
  • [] dg, dumpgen Displays heap content for the specified generation.
  • [] logging Enable/disable internal logging
  • [] lm, modules Displays the native modules in the process.
  • [] r, registers Displays the thread's registers.
  • [] runtimes List the runtimes in the target or change the default runtime.
  • [] setclrpath Set the path to load coreclr DAC/DBI files.
  • [] sosstatus Display internal status or reset the internal cached state.
  • [] parallelstacks, pstacks Display merged threads stack a la Visual Studio 'Parallel Stacks' panel.
  • [] taskstate, tks Display a Task state in a human readable format.
  • [] threadpoolqueue, tpq Display queued ThreadPool work items.
  • [] ti, timerinfo Display running timers details.
  • [] clrstack Provides a stack trace of managed code only.
  • [] dbgout Enable/disable (-off) internal SOS logging.
  • [] dumpalc Displays details about a collectible AssemblyLoadContext into which the specified object is loaded.
  • [] dumparray Displays details about a managed array.
  • [] dumpasync Displays info about async state machines on the garbage-collected heap.
  • [] dumpassembly Displays details about an assembly.
  • [] dumpclass Displays information about a EE class structure at the specified address.
  • [] dumpdelegate Displays information about a delegate.
  • [] dumpdomain Displays information all the AppDomains and all assemblies within the domains.
  • [] dumpil Displays the Microsoft intermediate language (MSIL) that is associated with a managed method.
  • [] dumplog Writes the contents of an in-memory stress log to the specified file.
  • [] dumpmd Displays information about a MethodDesc structure at the specified address.
  • [] dumpmodule Displays information about a EE module structure at the specified address.
  • [] do, dumpobj Displays info about an object at the specified address.
  • [] dumpvc Displays info about the fields of a value class.
  • [] dso, dumpstackobjects Displays all managed objects found within the bounds of the current stack.
  • [] eeheap Displays info about process memory consumed by internal runtime data structures.
  • [] eeversion Displays information about the runtime version.
  • [] finalizequeue Displays all objects registered for finalization.
  • [] gcwhere Displays the location in the GC heap of the argument passed in.
  • [] ip2md Displays the MethodDesc structure at the specified address in code that has been JIT-compiled.
  • [] name2ee Displays the MethodTable structure and EEClass structure for the specified type or method in the specified module.
  • [] pe, printexception Displays and formats fields of any object derived from the Exception class at the specified address.
  • [] histclear Releases any resources used by the family of Hist commands.
  • [] histinit Initializes the SOS structures from the stress log saved in the debuggee.
  • [] histobj Examines all stress log relocation records and displays the chain of garbage collection relocations that may have led to the address passed in as an argument.
  • [] histobjfind Displays all the log entries that reference an object at the specified address.
  • [] histroot Displays information related to both promotions and relocations of the specified root.
  • [] setsymbolserver Enables the symbol server support.
  • [] verifyheap Checks the GC heap for signs of corruption.
  • [] threadpool Lists basic information about the thread pool.
  • [] soshelp Displays help for a specific SOS command.
  • [] dumprcw Displays information about a Runtime Callable Wrapper.
  • [] dumpccw Displays information about a COM Callable Wrapper.
  • [] dumppermissionset Displays a PermissionSet object (debug build only).
  • [] traverseheap Writes out a file in a format understood by the CLR Profiler.
  • [] analyzeoom Displays the info of the last OOM occurred on an allocation request to the GC heap.
  • [] verifyobj Checks the object for signs of corruption.
  • [] listnearobj Displays the object preceding and succeeding the address specified.
  • [] gcheapstat Display various GC heap stats.
  • [] watsonbuckets Displays the Watson buckets.
  • [] comstate Lists the COM apartment model for each thread.
  • [] gchandles Provides statistics about GCHandles in the process.
  • [] gchandleleaks Helps in tracking down GCHandle leaks

About

This is a small gui.cs based ui to work with dotnet dump analyze

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published