問題タブ [clr-profiling-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
312 参照

c++ - ClrProfiler で、ObjectID から管理オブジェクトを取得する方法

コードで適切に処理されたにもかかわらず、例外の詳細をキャプチャする必要があるカスタム要件のために、.Net プロファイラーを構築しています。そうするために-

  • ICorProfilerCallback を実装しました
  • COR_PRF_MONITOR_EXCEPTIONS の SetEventsMask
  • ExceptionThrown コールバックを実装しました

これまでのところ、例外がスローされるたびにコールバックを取得しています。ただし、実際の例外オブジェクトへのポインターである OjbectID を提供します。例外に関するメッセージ、コール スタックなどの詳細が必要です。

ObjectID からオブジェクトの詳細を取得するにはどうすればよいですか?

0 投票する
0 に答える
194 参照

asp.net - IL を mscorlib に書き換えて w3wp.exe をクラッシュさせる

ASP.Net WebApp でファイルが開かれていることを監視するために、IL リライターを構築しました。そのために、mscorlib の FileStream クラスにある「Init」というプライベート メソッドの IL を書き直しています。ここでは、エピローグ/プロローグを挿入して、カスタム コールバックを登録します。

注射はうまくいっています。Windows アプリケーションでファイルが開かれるたびに、カスタム コールバックも呼び出されます。

しかし、ASP.Net Web アプリケーションに対して同じことを行うと、次のエラーでクラッシュし続けます -

System.ExecutionEngineException が処理されませんでした

.Net ベースのデスクトップ アプリケーションで正常に動作するかどうか、.Net ベースの Web アプリケーション、つまり ASP.Net で動作しない理由がわかりません。Web アプリケーションとデスクトップ アプリケーションの違いは何ですか?

上記のエラーをグーグルで調べても解決策は得られません:(

0 投票する
1 に答える
115 参照

c++ - .Net IL の TypeRef から TypeSpec を定義する

カスタム コードをいくつかのメソッドに挿入するカスタム IL リライターを作成しました。この注入の一部として、 のオブジェクトをインスタンス化したいと思いますList<int>。List~1 の mdTokenRef は既に見つかりました。

この mdTokenRef から、TypeSpec を定義または取得するにはどうすればよいですか? そのために、以下に示すように TypeSpecBlog を定義できます。しかし、TypeSpec を見つけるために ICorProfiler API を探しています。

0 投票する
1 に答える
171 参照

c++ - COR プロファイラーで AssemblyID からアセンブリ情報を取得する方法は?

ロードされたすべてのアセンブリの情報を、公開キー、バージョンなどのメタデータと共にキャプチャしたいと考えています。そのために、ICorProfiling API とコールバックを使用して .Net カスタム プロファイラーを開発しました。AssemblyLoadFinished イベントをサブスクライブすることで、読み込まれたアセンブリ ID をキャプチャできます。しかし、この AssemblyID から、公開キー、バージョンなどのアセンブリ メタデータを取得するにはどうすればよいですか?

「IMetaDataAssemblyImport::GetAssemblyProps」というメソッドを見つけました。ただし、アセンブリ トークン (つまり、mdAssembly) は受け入れます。AssemblyID を mdAssembly に変換するにはどうすればよいですか?