CtrlK
BlogDocsLog inGet started
Tessl Logo

dotnet-inspect-metadata

Query raw ECMA-335 assembly metadata — discover table and heap sections, inspect decoded rows and handles, address table or heap coordinates, and project bounded machine-readable results.

66

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

dotnet-inspect: raw assembly metadata

Use this skill when API views are too high-level and you need the assembly's actual ECMA-335 tables, handles, flags, or heap values. The metadata lens inspects one assembly image and never loads the inspected assembly.

dnx dotnet-inspect -y -- <command>

Discover before reading

Metadata tables are unbounded and explicit-only: no verbosity or base category renders them automatically. Structural discovery lists the authored metadata family without running its producers; add --effective to identify the tables and heaps that have data for this image:

dnx dotnet-inspect -y -- library MyLib.dll -D @Metadata
dnx dotnet-inspect -y -- library MyLib.dll -D @Metadata --effective
dnx dotnet-inspect -y -- library MyLib.dll -S @Metadata --count
dnx dotnet-inspect -y -- library MyLib.dll -D "Metadata: TypeDef" --effective

Metadata: Image reports image-level facts. Table sections such as Metadata: TypeDef, Metadata: MethodDef, and Metadata: MemberRef decode handles, ranges, heap values, and flags instead of dumping raw integers.

Query one table

The # column is the real metadata row id. --rows therefore addresses table rows by displayed, 1-based metadata position rather than by the current page. Ranges are inclusive, so 100..199 selects 100 rows:

dnx dotnet-inspect -y -- library MyLib.dll \
  -S "Metadata: MethodDef" --rows 100..199 --tsv
dnx dotnet-inspect -y -- library MyLib.dll \
  -S "Metadata: TypeRef" --columns "Name,Namespace,ResolutionScope" --jsonl

Table indices are accepted as input aliases when following a token:

dnx dotnet-inspect -y -- library MyLib.dll -S "Metadata: 0x02"

That is the TypeDef table. A full token such as 0x02000015 addresses a row, not a table, and is rejected by -S.

Inspect heaps

The heap sections are Metadata: #Strings, Metadata: #Blob, Metadata: #GUID, and Metadata: #US. Use library coordinate for one exact coordinate:

dnx dotnet-inspect -y -- library MyLib.dll \
  -S "Metadata: #Strings" --rows 20
dnx dotnet-inspect -y -- library coordinate "#Strings:0x1a4" \
  --library MyLib.dll

Heap addresses are decimal unless prefixed with 0x. String and blob listings contain distinct values referenced by projected table rows, not a claim of complete heap enumeration; each listing reports its coverage.

Selecting @Metadata for a package that resolves to several assemblies is ambiguous and fails. Choose one DLL with library, or use package Foo --library only when the package has one unambiguous library.

Repository
richlander/dotnet-inspect
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.