Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 >
呼び出し履歴を取得する
1.単純な例
MsgBox(New StackTrace(True).ToString)
2.カスタマイズして表示する例
呼び出し履歴順にクラス名・プロシージャ名・ファイル名・行番号をリストボックスに表示する。
Public Sub MyProc() Dim Proc As StackFrame
Dim ClassName As String '呼び出し履歴上のクラス名
Dim History As New StackTrace(True)
Dim K As Integer
Dim ProcName As String '呼び出し履歴上のプロシージャ名
Dim SourceFileName As String
Dim LineNumber As IntegerListBox1.Items.Clear()
For K = 0 To History.FrameCount - 1
'スタックフレームを取得
Proc = History.GetFrame(K)'この履歴のクラス名、プロシージャ名等を取得
ClassName = Proc.GetMethod.ReflectedType.Name
ProcName = Proc.GetMethod.Name
SourceFileName = Proc.GetFileName
LineNumber = Proc.GetFileLineNumber'リストボックスに表示
ListBox1.Items.Add("■" & ClassName & "." & ProcName)If Not (SourceFileName Is Nothing) Then
ListBox1.Items.Add(SourceFileName)
ListBox1.Items.Add(LineNumber)
End IfNext K
End Sub
メモ:ファイル名と行番号の取得・表示部分はデバッグビルドされたもののみ正常に動作します。
VB6には同じ機能は用意されていません。