Add CI coverage for the exported CLRMA `!analyze` path (dbgeng, out of command scope)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- cpp
- 領域
- devtools, testing-qa
調査の方向性
Microsoft.Diagnostics.DebugServices.UnitTests.csproj と ConfigFiles/Windows/Debugger.Tests.Config.txt を確認し、続いて issue #3111 と併せて ClrmaTests と BangAnalyzeTests を調査します。ext.dll に対応したデバッガーを有効にするか、native harness を使用して command scope なしで CLRMACreateInstance と AssociateClient を呼び出すかを評価します。CI が実際の out-of-command-scope パスを実行し、g_Ext*-null クラッシュをゲートできれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Background
PR #5946 fixed a crash on the native (non-hosted) CLRMA path where the exported CLRMACreateInstance (invoked by dbgeng !analyze via ext!CLRMACreateCached) borrowed command-scoped g_Ext* debugger globals that are null outside a !command. Regression originated in #4667.
That PR added coverage that exercises the fixed native Target/DataTarget/Runtime object graph via !clrma under cdb with !SetHostRuntime -none. However, this does not reproduce the original crash, because the !clrma command runs in command scope (INIT_API_EXT() -> ExtQuery populates g_Ext* for the command's duration). The only trigger that runs outside command scope is dbgeng's !analyze, which we cannot exercise in CI today.
Why !analyze can't be tested in CI currently
- No
ext.dllin the test debugger package. Thecdb-sospackage (10.0.26100.1) used by the tests ships onlydbgcore/dbgeng/dbghelp/DbgModel/symsrv- noext.dll, so!analyzefails with "No export analyze found".DbgEngPathinMicrosoft.Diagnostics.DebugServices.UnitTests.csprojpoints at this same package. TestDbgEngharness is disabled. The<TestDbgEng>true</TestDbgEng>config blocks inConfigFiles/Windows/Debugger.Tests.Config.txtare commented out (tracked by #3111), soClrmaTests/BangAnalyzeTests(the only harness that issues!analyze) don't run in CI.
Ask
Add a test that drives CLRMA through the real out-of-command-scope entry point so the exact g_Ext*-null crash path is gated in CI. Options to evaluate:
- Provide an
ext.dll-capable debugger in the test assets (or a minimal harness) and re-enable a scopedTestDbgEngconfiguration (see #3111) so!analyze -vcan run against a managed crash dump. - Alternatively, add a small native test harness that calls the exported
CLRMACreateInstance+AssociateClientdirectly with no active command (mirroringext!CLRMACreateCached), asserting no fault when the command-scoped globals are null.
References
- Fix: #5946
- Regression origin: #4667
- Related disabled harness: #3111
- 主要言語
- C++
- スター
- 1.3k
- フォーク
- 407
- 平均マージ
- 21時間 5分
- マージ済み PR(30日)
- 78
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
dotnet/diagnostics のほかの issue
-
Fix StackAndOtherTests.script line number verification for .NET 11 and Windows x64再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
dotnet/diagnostics#5884 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
dotnet/diagnostics#6225 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
dotnet/diagnostics#6213 ·
メンテナーはふだん 1 日以内に返信
-
Isolate SOS hosting from other debugger extensions that use managed code対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンbug
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
dotnet/diagnostics#6207 ·
メンテナーはふだん 1 日以内に返信
-
Known Build Error
難易度 4/5 3〜5日 初心者へのやさしさ 49/100
dotnet/diagnostics#6190 ·
メンテナーはふだん 1 日以内に返信
dotnet/diagnostics の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
AutoHotkey/AutoHotkey#380 ·
-
documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
grumpycoders/pcsx-redux#2667 ·
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
google/tensorstore#305 ·