2017-06-22 17 views
1

WinDbgでCLRオブジェクト/クラスを印刷しようとしましたが失敗しました。CLRオブジェクトのデバッグ時に "Symbol clr!XXX not found"エラーが発生しました

まず、x clr!Thread*を実行してCLRクラス名を取得しようとしました。次のような出力が表示されます。

00007ffd`68957f18 clr!ThreadStore::s_pOSContext = <no type information> 
00007ffd`685b0bf0 clr!ThreadNative::SetApartmentState (<no parameter info>) 
00007ffd`685b12c0 clr!ThreadNative::YieldThread (<no parameter info>) 
00007ffd`6806be60 clr!Thread::ResetManagedThreadObjectInCoopMode (<no parameter info>) 
00007ffd`6895e928 clr!ThreadpoolMgr::LastCPThreadCreation = <no type information> 
00007ffd`68627800 clr!ThreadPoolNative::CorUnregisterWait (<no parameter info>) 
00007ffd`685b1320 clr!ThreadExceptionState::GetCurrentEHClauseInfo (<no parameter info>) 
00007ffd`681285c4 clr!ThreadpoolMgr::ChangeTimerQueueTimer (<no parameter info>) 
00007ffd`684c69f0 clr!Thread::BaseWinRTUninitialize (<no parameter info>) 
00007ffd`680eea20 clr!ThreadpoolMgr::ShouldGateThreadKeepRunning (<no parameter info>) 
00007ffd`684c8ca0 clr!Thread::IsWithinCer (<no parameter info>) 
00007ffd`6859a0c0 clr!ThreadpoolMgr::DeleteWait (<no parameter info>) 

は、その後、私はしかし、それらのどれも働いていないとエラーが

シンボルCLRで、dt clr!<classname>またはdt clr!<classname> <objectaddress>のようないくつかのコマンドを実行します!xxxxxは見られません。

0:000> dt clr!ThreadNative 
Symbol clr!ThreadNative not found. 
0:000> dt clr!Thread 
Symbol clr!Thread not found. 
0:000> dt clr!ThreadpoolMgr 
Symbol clr!ThreadpoolMgr not found. 

ところで、私は今まで、しかし、解決策を​​は認められませんでした。

ただし、一部の人はdtコマンドsuccessfully for the CLR class\object with old version CLRを実行できます。

CLRのPDBが正しく読み込まれていることを確認してください。 同じ問題があるかどうかを確認してください。そうでない場合は、その問題を解決する方法を教えてください。

+1

マイクロソフトにバグ要求を提出し、その審査結果を待っています。 https://connect.microsoft.com/VisualStudio/feedback/details/3136349 –

答えて

1

おそらく、clr.dllのパブリックシンボルがあります。これは、Microsoftが通常clr.dllや他の多くの製品用に配布しているシンボルです。パブリックシンボルは設計上より少ない情報しか持たないため、dtの失敗が予想されます。あなたはそれ上記のリンクで

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/public-and-private-symbols

人が民間のシンボルへのアクセス権を持っているが、私は、彼らがそれらを得たのか分からないことが表示されます。ランタイムが内部的にどのように動作するのかを理解することが目的なら、CoreCLRはオープンソース(https://github.com/dotnet/coreclr)であり、多くの内部構造はclr.dllと非常によく似ています。特定のランタイム問題をデバッグすることが目標である場合は、SOSで使用可能なコマンドを使用するか、Visual Studioデバッガを使用するか、コミュニティが追加提案を提供できるように解決しようとしている問題を説明する別のSO投稿を作成できます。このことができます

希望、

-Noahファルク(マイクロソフト.NETチーム)

関連する問題