dotnet-diag
عیبیابی عملکرد و crashهای .NET در دسکتاپ، موبایل و محیطهای واقعی
این skill bundle برای تحلیل مشکلات .NET ساخته شده است؛ از شناسایی الگوهای ضعیف عملکرد در کد تا symbolication کردن crashهای native در Android و پلتفرمهای Apple. میتواند allocation، async، LINQ، I/O و سایر نقاط پرهزینه را بررسی کند.
با تبدیل backtraceهای مبهم به نام تابع، فایل و شماره خط، مسیر بررسی خطا کوتاهتر میشود. این ابزار برای تیمهایی مفید است که روی .NET، .NET MAUI یا Mono کار میکنند و به تشخیص دقیقتر مشکل در production نیاز دارند.
چه چیزی میگیرید
- بررسی حدود ۵۰ الگوی رایج افت عملکرد در کد .NET با سطحبندی شدت
- symbolication کردن Android tombstone با استخراج BuildId و استفاده از llvm-symbolizer
- symbolication کردن crash logهای Apple مانند .ips با dSYM، atos و dwarfdump
- کمک به تحلیل SIGABRT، SIGSEGV، EXC_CRASH و EXC_BAD_ACCESS در runtime .NET
- پیشنهاد مسیر تشخیص برای مشکلات عملکردی و crashهای native در برنامههای .NET
برای چه کاری خوب است
- تیمهای توسعهدهنده .NET و .NET MAUI که با crashهای native در موبایل روبهرو هستند
- بررسی hot pathها، allocationهای غیرضروری و bottleneckهای عملکردی در کد C#
- تحلیل crash reportهای Android، iOS، tvOS، Mac Catalyst یا macOS که به runtime .NET مربوطاند
برای چه کاری نیست
- crashهای صرفاً Java/Kotlin یا Swift/Objective-C که هیچ مؤلفه .NET ندارند
- خطاهای managed .NET که stack trace کامل آنها از قبل در logcat یا ابزار مانیتورینگ ثبت شده است
- تحلیل crash logهای iOS با فرمت نامرتبط یا tombstoneهای غیرAndroid
دربارهٔ این اسکیل
Install This Skill
CLI Manual
/plugin marketplace add dotnet/skills
/plugin install dotnet-diag@dotnet-agent-skills
# This entry installs as a plugin, so there is no single SKILL.md to download.
open https://github.com/dotnet/skills/tree/main/plugins/dotnet-diag
Skill bundle — 7 sub-skills
upstream is a skill bundle
This catalog entry is a skill bundle that ships 7 individual SKILL.md files. Each one is listed below — click through to read the full markdown on GitHub.
analyzing-dotnet-performance
- Scans .NET code for ~50 performance anti-patterns across async, memory, strings, collections, LINQ, regex, serialization, and I/O with tiered severity classification. Use when analyzing .NET code for optimization opportunities, reviewing hot paths, or auditing allocation-heavy patterns.
plugins/dotnet-diag/skills/analyzing-dotnet-performance
android-tombstone-symbolication
Symbolicate the .NET runtime frames in an Android tombstone file. Extracts BuildIds and PC offsets from the native backtrace, downloads debug symbols from the Microsoft symbol server, and runs llvm-symbolizer to produce function names with source file and line numbers. USE FOR triaging a .NET MAUI or Mono Android app crash from a tombstone, resolving native backtrace frames in libmonosgen-2.0.so or libcoreclr.so to .NET runtime source code, or investigating SIGABRT, SIGSEGV, or other native signals originating from the .NET runtime on Android. DO NOT USE FOR pure Java/Kotlin crashes, managed .NET exceptions that are already captured in logcat, or iOS crash logs. INVOKES Symbolicate-Tombstone.ps1 script, llvm-symbolizer, Microsoft symbol server.
plugins/dotnet-diag/skills/android-tombstone-symbolication
apple-crash-symbolication
Symbolicate .NET runtime frames in Apple platform .ips crash logs (iOS, tvOS, Mac Catalyst, macOS). Extracts UUIDs and addresses from the native backtrace, locates dSYM debug symbols, and runs atos to produce function names with source file and line numbers. Automatically downloads .dwarf symbols from the Microsoft symbol server using Mach-O UUIDs. USE FOR triaging a .NET MAUI or Mono app crash from an .ips file on any Apple platform, resolving native backtrace frames in libcoreclr or libmonosgen-2.0 to .NET runtime source code, retrieving .ips crash logs from a connected iOS device or iPhone, or investigating EXC_CRASH, EXC_BAD_ACCESS, SIGABRT, or SIGSEGV originating from the .NET runtime. DO NOT USE FOR pure Swift/Objective-C crashes with no .NET components, or Android tombstone files. INVOKES Symbolicate-Crash.ps1 script, atos, dwarfdump,