C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 7 を表示中)
■7340 / )  Re[2]: profilerで呼び出し履歴が取れないでしょうか
□投稿者/ ognac 二等兵(2回)-(2006/10/07(Sat) 00:32:21)

分類:[.NET 全般] 

No7331に返信(NyaRuRuさんの記事)

> 何がやりたいのかよく分からないのですが,CLR Profiler に付属するソースコードを改良して機能を追加したいという話ですか?
> この辺の API を使えば,呼び出し履歴の取得ぐらいは普通にできそうな気がしますけど.


NyaRuRu さん、ありがとうごさいます。

[デバッグテクニック徹底解説]の本によりますと, プロファインリングAPIの解説で、通知フラグの ENTERLEAVEでCALLBackを設定すると、
関数HOOKが可能で.下のクラスを実行すると,結果として, Trace実行結果 を作成することが可能が得られるとあります。
この機能を CLR_Profilerで出来ないのかと悩んでいます。
提示されたURLを熟読してみます。

------------------サンプルソース
class ThreadOne
{
public void EntryPoint ( )
{
Do ( ) ;
}

void Do ( )
{
Re ( ) ;
}

void Re ( )
{
Mi ( ) ;
}

void Mi ( )
{
Fa ( ) ;
}

void Fa ( )
{
So ( ) ;
}

void So ( )
{
La ( ) ;
}

void La ( )
{
Ti ( ) ;
}

void Ti ( )
{
Doh ( ) ;
}

void Doh ( )
{
MessageBeep ( -1 ) ;
}

[DllImport("user32.dll")]
private static extern Int32 MessageBeep ( Int32 uType ) ;
}
これを
private void BtnThreadOne_Click(object sender, System.EventArgs e)
{
ThreadOne c = new ThreadOne ( ) ;
Thread t = new Thread ( new ThreadStart ( c.EntryPoint ) ) ;
t.IsBackground = true ;
t.Name = "Thread One" ;
t.Start ( ) ;
}
で起動します。
--▼Trace実行結果

Thread 1 started at : 11:33:33:0846
FlowTest.ThreadOne.EntryPoint
FlowTest.ThreadOne.Do
FlowTest.ThreadOne.Re
FlowTest.ThreadOne.Mi
FlowTest.ThreadOne.Fa
FlowTest.ThreadOne.So
FlowTest.ThreadOne.La
FlowTest.ThreadOne.Ti
FlowTest.ThreadOne.Doh
System.Security.Permissions.SecurityPermission..ctor
System.Security.Permissions.SecurityPermission.VerifyAccess
System.Security.Permissions.SecurityPermission.VerifyAccess
System.Security.Permissions.SecurityPermission..ctor
FlowTest.ThreadOne.Doh
FlowTest.ThreadOne.Ti
FlowTest.ThreadOne.La
FlowTest.ThreadOne.So
FlowTest.ThreadOne.Fa
FlowTest.ThreadOne.Mi
FlowTest.ThreadOne.Re
FlowTest.ThreadOne.Do
FlowTest.ThreadOne.EntryPoint
Thread ended at : 11:33:33:0846

--▲Trace結果



0
返信 編集キー/


管理者用

- Child Tree -