StackFrame クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のスレッドのコール スタック上での関数呼び出しを表す、StackFrame に関する情報を提供します。
public ref class StackFrame sealed
public ref class StackFrame
public sealed class StackFrame
public class StackFrame
[System.Serializable]
public class StackFrame
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StackFrame
type StackFrame = class
[<System.Serializable>]
type StackFrame = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StackFrame = class
Public NotInheritable Class StackFrame
Public Class StackFrame
- 継承
-
StackFrame
- 属性
例
次の例では、 クラスを StackFrame 使用してスタック トレースのスタック フレーム情報を提供する方法を示します。
using System;
using System.Diagnostics;
namespace StackFrameExample
{
class Program
{
static void Main(string[] args)
{
try
{
Method1();
}
catch (Exception e)
{
StackTrace st = new StackTrace();
StackTrace st1 = new StackTrace(new StackFrame(true));
Console.WriteLine(" Stack trace for Main: {0}",
st1.ToString());
Console.WriteLine(st.ToString());
}
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
}
private static void Method1()
{
try
{
Method2(4);
}
catch (Exception e)
{
StackTrace st = new StackTrace();
StackTrace st1 = new StackTrace(new StackFrame(true));
Console.WriteLine(" Stack trace for Method1: {0}",
st1.ToString());
Console.WriteLine(st.ToString());
// Build a stack trace for the next frame.
StackTrace st2 = new StackTrace(new StackFrame(1, true));
Console.WriteLine(" Stack trace for next level frame: {0}",
st2.ToString());
throw e;
}
}
private static void Method2( int count)
{
try
{
if (count < 5)
throw new ArgumentException("count too large", "count");
}
catch (Exception e)
{
StackTrace st = new StackTrace();
StackTrace st1 = new StackTrace(new StackFrame(2,true));
Console.WriteLine(" Stack trace for Method2: {0}",
st1.ToString());
Console.WriteLine(st.ToString());
throw e;
}
}
}
}
Imports System.Diagnostics
Class Program
Shared Sub Main(ByVal args() As String)
Try
Method1()
Catch e As Exception
Dim st As New StackTrace()
Dim st1 As New StackTrace(New StackFrame(True))
Console.WriteLine(" Stack trace for Main: {0}", st1.ToString())
Console.WriteLine(st.ToString())
End Try
Console.WriteLine("Press Enter to exit.")
Console.ReadLine()
End Sub
Private Shared Sub Method1()
Try
Method2(4)
Catch e As Exception
Dim st As New StackTrace()
Dim st1 As New StackTrace(New StackFrame(True))
Console.WriteLine(" Stack trace for Method1: {0}", st1.ToString())
Console.WriteLine(st.ToString())
' Build a stack trace for the next frame.
Dim st2 As New StackTrace(New StackFrame(1, True))
Console.WriteLine(" Stack trace for next level frame: {0}", st2.ToString())
Throw e
End Try
End Sub
Private Shared Sub Method2(ByVal count As Integer)
Try
If count < 5 Then
Throw New ArgumentException("count too large", "count")
End If
Catch e As Exception
Dim st As New StackTrace()
Dim st1 As New StackTrace(New StackFrame(2, True))
Console.WriteLine(" Stack trace for Method2: {0}", st1.ToString())
Console.WriteLine(st.ToString())
Throw e
End Try
End Sub
End Class
次の例では、 クラスのメンバーの使用方法を StackFrame 示します。
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
// This console application illustrates various uses
// of the StackTrace and StackFrame classes.
namespace SampleInternal
{
public ref class ClassLevel6
{
public:
void Level6Method()
{
throw gcnew Exception( "An error occurred in the lowest internal class method." );
}
};
public ref class ClassLevel5
{
public:
void Level5Method()
{
try
{
ClassLevel6^ nestedClass = gcnew ClassLevel6;
nestedClass->Level6Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " Level5Method exception handler" );
StackTrace^ st = gcnew StackTrace;
// Display the most recent function call.
StackFrame^ sf = st->GetFrame( 0 );
Console::WriteLine();
Console::WriteLine( " Exception in method: " );
Console::WriteLine( " {0}", sf->GetMethod() );
if ( st->FrameCount > 1 )
{
// Display the highest-level function call
// in the trace.
sf = st->GetFrame( st->FrameCount - 1 );
Console::WriteLine( " Original function call at top of call stack):" );
Console::WriteLine( " {0}", sf->GetMethod() );
}
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
}
};
public ref class ClassLevel4
{
public:
void Level4Method()
{
try
{
ClassLevel5^ nestedClass = gcnew ClassLevel5;
nestedClass->Level5Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " Level4Method exception handler" );
// Build a stack trace from a dummy stack frame.
// Explicitly specify the source file name, line number
// and column number.
StackTrace^ st = gcnew StackTrace( gcnew StackFrame( "source.cs",79,24 ) );
Console::WriteLine( " Stack trace with dummy stack frame: {0}", st->ToString() );
// Access the StackFrames explicitly to display the file
// name, line number and column number properties.
// StackTrace.ToString only includes the method name.
for ( int i = 0; i < st->FrameCount; i++ )
{
StackFrame^ sf = st->GetFrame( i );
Console::WriteLine( " File: {0}", sf->GetFileName() );
Console::WriteLine( " Line Number: {0}", sf->GetFileLineNumber().ToString() );
Console::WriteLine( " Column Number: {0}", sf->GetFileColumnNumber().ToString() );
}
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
}
};
public ref class ClassLevel3
{
public:
void Level3Method()
{
try
{
ClassLevel4^ nestedClass = gcnew ClassLevel4;
nestedClass->Level4Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " Level3Method exception handler" );
// Build a stack trace from a dummy stack frame.
// Explicitly specify the source file name and line number.
StackTrace^ st = gcnew StackTrace( gcnew StackFrame( "source.cs",60 ) );
Console::WriteLine( " Stack trace with dummy stack frame: {0}", st->ToString() );
for ( int i = 0; i < st->FrameCount; i++ )
{
// Display the stack frame properties.
StackFrame^ sf = st->GetFrame( i );
Console::WriteLine( " File: {0}", sf->GetFileName() );
Console::WriteLine( " Line Number: {0}", sf->GetFileLineNumber().ToString() );
// Note that the column number defaults to zero
// when not initialized.
Console::WriteLine( " Column Number: {0}", sf->GetFileColumnNumber().ToString() );
Console::WriteLine( " Intermediate Language Offset: {0}", sf->GetILOffset().ToString() );
Console::WriteLine( " Native Offset: {0}", sf->GetNativeOffset().ToString() );
}
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
}
};
public ref class ClassLevel2
{
public:
void Level2Method()
{
try
{
ClassLevel3^ nestedClass = gcnew ClassLevel3;
nestedClass->Level3Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " Level2Method exception handler" );
// Display the full call stack at this level.
StackTrace^ st1 = gcnew StackTrace( true );
Console::WriteLine( " Stack trace for this level: {0}", st1->ToString() );
// Build a stack trace from one frame, skipping the
// current frame and using the next frame.
StackTrace^ st2 = gcnew StackTrace( gcnew StackFrame( 1,true ) );
Console::WriteLine( " Stack trace built with next level frame: {0}", st2->ToString() );
// Build a stack trace skipping the current frame, and
// including all the other frames.
StackTrace^ st3 = gcnew StackTrace( 1,true );
Console::WriteLine( " Stack trace built from the next level up: {0}", st3->ToString() );
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
}
};
public ref class ClassLevel1
{
public:
void InternalMethod()
{
try
{
ClassLevel2^ nestedClass = gcnew ClassLevel2;
nestedClass->Level2Method();
}
catch ( Exception^ e )
{
Console::WriteLine( " InternalMethod exception handler" );
// Build a stack trace from one frame, skipping the
// current frame and using the next frame. By
// default, file and line information are not displayed.
StackTrace^ st = gcnew StackTrace( gcnew StackFrame( 1 ) );
Console::WriteLine( " Stack trace for next level frame: {0}", st->ToString() );
Console::WriteLine( " Stack frame for next level: " );
Console::WriteLine( " {0}", st->GetFrame( 0 )->ToString() );
Console::WriteLine( " Line Number: {0}", st->GetFrame( 0 )->GetFileLineNumber().ToString() );
Console::WriteLine();
Console::WriteLine( " ... throwing exception to next level ..." );
Console::WriteLine( "-------------------------------------------------\n" );
throw e;
}
}
};
}
using namespace SampleInternal;
namespace SamplePublic
{
class ConsoleApp
{
public:
[STAThread]
static void Main()
{
ClassLevel1 ^ mainClass = gcnew ClassLevel1;
try
{
mainClass->InternalMethod();
}
catch ( Exception^ e )
{
Console::WriteLine( " Main method exception handler" );
// Display file and line information, if available.
StackTrace^ st = gcnew StackTrace( gcnew StackFrame( true ) );
Console::WriteLine( " Stack trace for current level: {0}", st->ToString() );
Console::WriteLine( " File: {0}", st->GetFrame( 0 )->GetFileName() );
Console::WriteLine( " Line Number: {0}", st->GetFrame( 0 )->GetFileLineNumber().ToString() );
Console::WriteLine();
Console::WriteLine( "-------------------------------------------------\n" );
}
}
};
}
int main()
{
SamplePublic::ConsoleApp::Main();
}
using System;
using System.Diagnostics;
using SampleInternal;
namespace SamplePublic
{
// This console application illustrates various uses
// of the StackTrace and StackFrame classes.
class ConsoleApp
{
[STAThread]
static void Main()
{
ClassLevel1 mainClass = new ClassLevel1();
try {
mainClass.InternalMethod();
}
catch (Exception) {
Console.WriteLine(" Main method exception handler");
// Display file and line information, if available.
StackTrace st = new StackTrace(new StackFrame(true));
Console.WriteLine(" Stack trace for current level: {0}",
st.ToString());
Console.WriteLine(" File: {0}",
st.GetFrame(0).GetFileName());
Console.WriteLine(" Line Number: {0}",
st.GetFrame(0).GetFileLineNumber().ToString());
Console.WriteLine();
Console.WriteLine("-------------------------------------------------\n");
}
}
}
}
namespace SampleInternal
{
public class ClassLevel1
{
public void InternalMethod()
{
try
{
ClassLevel2 nestedClass = new ClassLevel2();
nestedClass.Level2Method();
}
catch (Exception e)
{
Console.WriteLine(" InternalMethod exception handler");
// Build a stack trace from one frame, skipping the
// current frame and using the next frame. By
// default, file and line information are not displayed.
StackTrace st = new StackTrace(new StackFrame(1));
Console.WriteLine(" Stack trace for next level frame: {0}",
st.ToString());
Console.WriteLine(" Stack frame for next level: ");
Console.WriteLine(" {0}", st.GetFrame(0).ToString());
Console.WriteLine(" Line Number: {0}",
st.GetFrame(0).GetFileLineNumber().ToString());
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level ...");
Console.WriteLine("-------------------------------------------------\n");
throw e;
}
}
}
public class ClassLevel2
{
public void Level2Method()
{
try
{
ClassLevel3 nestedClass = new ClassLevel3();
nestedClass.Level3Method();
}
catch (Exception e)
{
Console.WriteLine(" Level2Method exception handler");
// Display the full call stack at this level.
StackTrace st1 = new StackTrace(true);
Console.WriteLine(" Stack trace for this level: {0}",
st1.ToString());
// Build a stack trace from one frame, skipping the current
// frame and using the next frame.
StackTrace st2 = new StackTrace(new StackFrame(1, true));
Console.WriteLine(" Stack trace built with next level frame: {0}",
st2.ToString());
// Build a stack trace skipping the current frame, and
// including all the other frames.
StackTrace st3 = new StackTrace(1, true);
Console.WriteLine(" Stack trace built from the next level up: {0}",
st3.ToString());
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level ...");
Console.WriteLine("-------------------------------------------------\n");
throw e;
}
}
}
public class ClassLevel3
{
public void Level3Method()
{
try
{
ClassLevel4 nestedClass = new ClassLevel4();
nestedClass.Level4Method();
}
catch (Exception e)
{
Console.WriteLine(" Level3Method exception handler");
// Build a stack trace from a dummy stack frame.
// Explicitly specify the source file name and
// line number.
StackTrace st = new StackTrace(new StackFrame("source.cs", 60));
Console.WriteLine(" Stack trace with dummy stack frame: {0}",
st.ToString());
for(int i =0; i< st.FrameCount; i++ )
{
// Display the stack frame properties.
StackFrame sf = st.GetFrame(i);
Console.WriteLine(" File: {0}", sf.GetFileName());
Console.WriteLine(" Line Number: {0}",
sf.GetFileLineNumber());
// Note that the column number defaults to zero
// when not initialized.
Console.WriteLine(" Column Number: {0}",
sf.GetFileColumnNumber());
if (sf.GetILOffset() != StackFrame.OFFSET_UNKNOWN)
{
Console.WriteLine(" Intermediate Language Offset: {0}",
sf.GetILOffset());
}
if (sf.GetNativeOffset() != StackFrame.OFFSET_UNKNOWN)
{
Console.WriteLine(" Native Offset: {0}",
sf.GetNativeOffset());
}
}
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level ...");
Console.WriteLine("-------------------------------------------------\n");
throw e;
}
}
}
public class ClassLevel4
{
public void Level4Method()
{
try
{
ClassLevel5 nestedClass = new ClassLevel5();
nestedClass.Level5Method();
}
catch (Exception e)
{
Console.WriteLine(" Level4Method exception handler");
// Build a stack trace from a dummy stack frame.
// Explicitly specify the source file name, line number
// and column number.
StackTrace st = new StackTrace(new StackFrame("source.cs", 79, 24));
Console.WriteLine(" Stack trace with dummy stack frame: {0}",
st.ToString());
// Access the StackFrames explicitly to display the file
// name, line number and column number properties.
// StackTrace.ToString only includes the method name.
for(int i =0; i< st.FrameCount; i++ )
{
StackFrame sf = st.GetFrame(i);
Console.WriteLine(" File: {0}", sf.GetFileName());
Console.WriteLine(" Line Number: {0}",
sf.GetFileLineNumber());
Console.WriteLine(" Column Number: {0}",
sf.GetFileColumnNumber());
}
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level ...");
Console.WriteLine("-------------------------------------------------\n");
throw e;
}
}
}
public class ClassLevel5
{
public void Level5Method()
{
try
{
ClassLevel6 nestedClass = new ClassLevel6();
nestedClass.Level6Method();
}
catch (Exception e)
{
Console.WriteLine(" Level5Method exception handler");
StackTrace st = new StackTrace();
// Display the most recent function call.
StackFrame sf = st.GetFrame(0);
Console.WriteLine();
Console.WriteLine(" Exception in method: ");
Console.WriteLine(" {0}", sf.GetMethod());
if (st.FrameCount >1)
{
// Display the highest-level function call
// in the trace.
sf = st.GetFrame(st.FrameCount-1);
Console.WriteLine(" Original function call at top of call stack):");
Console.WriteLine(" {0}", sf.GetMethod());
}
Console.WriteLine();
Console.WriteLine(" ... throwing exception to next level ...");
Console.WriteLine("-------------------------------------------------\n");
throw e;
}
}
}
public class ClassLevel6
{
public void Level6Method()
{
throw new Exception("An error occurred in the lowest internal class method.");
}
}
}
Imports System.Diagnostics
Imports SampleInternal
Namespace SamplePublic
' This console application illustrates various uses
' of the StackTrace and StackFrame classes.
Class ConsoleApp
<STAThread()> _
Shared Sub Main()
Dim mainClass As New ClassLevel1
Try
mainClass.InternalMethod()
Catch
Console.WriteLine(" Main method exception handler")
' Display file and line information, if available.
Dim st As New StackTrace(New StackFrame(True))
Console.WriteLine(" Stack trace for current level: {0}", _
st.ToString())
Console.WriteLine(" File: {0}", _
st.GetFrame(0).GetFileName())
Console.WriteLine(" Line Number: {0}", _
st.GetFrame(0).GetFileLineNumber().ToString())
Console.WriteLine()
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
End Try
End Sub
End Class
End Namespace 'StackFramePublic
Namespace SampleInternal
Public Class ClassLevel1
Public Sub InternalMethod()
Try
Dim nestedClass As New ClassLevel2
nestedClass.Level2Method()
Catch e As Exception
Console.WriteLine(" InternalMethod exception handler")
' Build a stack trace from one frame, skipping the
' current frame and using the next frame. By default,
' file and line information are not displayed.
Dim st As New StackTrace(New StackFrame(1))
Console.WriteLine(" Stack trace for next level frame: {0}", _
st.ToString())
Console.WriteLine(" Stack frame for next level: ")
Console.WriteLine(" {0}", st.GetFrame(0).ToString())
Console.WriteLine(" Line Number: {0}", _
st.GetFrame(0).GetFileLineNumber().ToString())
Console.WriteLine()
Console.WriteLine(" ... throwing exception to next level ...")
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
Throw e
End Try
End Sub
End Class
Public Class ClassLevel2
Public Sub Level2Method()
Try
Dim nestedClass As New ClassLevel3
nestedClass.Level3Method()
Catch e As Exception
Console.WriteLine(" Level2Method exception handler")
' Display the full call stack at this level.
Dim st1 As New StackTrace(True)
Console.WriteLine(" Stack trace for this level: {0}", _
st1.ToString())
' Build a stack trace from one frame, skipping the current
' frame and using the next frame.
Dim st2 As New StackTrace(New StackFrame(1, True))
Console.WriteLine(" Stack trace built with next level frame: {0}", _
st2.ToString())
' Build a stack trace skipping the current frame, and
' including all the other frames.
Dim st3 As New StackTrace(1, True)
Console.WriteLine(" Stack trace built from the next level up: {0}", _
st3.ToString())
Console.WriteLine()
Console.WriteLine(" ... throwing exception to next level ...")
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
Throw e
End Try
End Sub
End Class
Public Class ClassLevel3
Public Sub Level3Method()
Try
Dim nestedClass As New ClassLevel4()
nestedClass.Level4Method()
Catch e As Exception
Console.WriteLine(" Level3Method exception handler")
' Build a stack trace from a dummy stack frame.
' Explicitly specify the source file name and line number.
Dim st As New StackTrace(New StackFrame("source.cs", 60))
Console.WriteLine(" Stack trace with dummy stack frame: {0}", _
st.ToString())
Dim i As Integer
For i = 0 To st.FrameCount - 1
' Display the stack frame properties.
Dim sf As StackFrame = st.GetFrame(i)
Console.WriteLine(" File: {0}", sf.GetFileName())
Console.WriteLine(" Line Number: {0}", _
sf.GetFileLineNumber())
' The column number defaults to zero when not initialized.
Console.WriteLine(" Column Number: {0}", _
sf.GetFileColumnNumber())
If sf.GetILOffset <> StackFrame.OFFSET_UNKNOWN
Console.WriteLine(" Intermediate Language Offset: {0}", _
sf.GetILOffset())
End If
If sf.GetNativeOffset <> StackFrame.OFFSET_UNKNOWN
Console.WriteLine(" Native Offset: {0}", _
sf.GetNativeOffset())
End If
Next i
Console.WriteLine()
Console.WriteLine(" ... throwing exception to next level ...")
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
Throw e
End Try
End Sub
End Class
Public Class ClassLevel4
Public Sub Level4Method()
Try
Dim [nestedClass] As New ClassLevel5()
[nestedClass].Level5Method()
Catch e As Exception
Console.WriteLine(" Level4Method exception handler")
' Build a stack trace from a dummy stack frame.
' Explicitly specify the source file name, line number
' and column number.
Dim st As New StackTrace(New StackFrame("source.cs", 79, 24))
Console.WriteLine(" Stack trace with dummy stack frame: {0}", _
st.ToString())
' Access the StackFrames explicitly to display the file
' name, line number and column number properties.
' StackTrace.ToString only includes the method name.
Dim i As Integer
For i = 0 To st.FrameCount - 1
Dim sf As StackFrame = st.GetFrame(i)
Console.WriteLine(" File: {0}", sf.GetFileName())
Console.WriteLine(" Line Number: {0}", _
sf.GetFileLineNumber())
Console.WriteLine(" Column Number: {0}", _
sf.GetFileColumnNumber())
Next i
Console.WriteLine()
Console.WriteLine(" ... throwing exception to next level ...")
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
Throw e
End Try
End Sub
End Class
Public Class ClassLevel5
Public Sub Level5Method()
Try
Dim nestedClass As New ClassLevel6()
nestedClass.Level6Method()
Catch e As Exception
Console.WriteLine(" Level5Method exception handler")
Dim st As New StackTrace()
' Display the most recent function call.
Dim sf As StackFrame = st.GetFrame(0)
Console.WriteLine()
Console.WriteLine(" Exception in method: ")
Console.WriteLine(" {0}", sf.GetMethod())
If st.FrameCount > 1 Then
' Display the highest-level function call in the trace.
sf = st.GetFrame((st.FrameCount - 1))
Console.WriteLine(" Original function call at top of call stack):")
Console.WriteLine(" {0}", sf.GetMethod())
End If
Console.WriteLine()
Console.WriteLine(" ... throwing exception to next level ...")
Console.WriteLine("-------------------------------------------------")
Console.WriteLine()
Throw e
End Try
End Sub
End Class
Public Class ClassLevel6
Public Sub Level6Method()
Throw New Exception("An error occurred in the lowest internal class method.")
End Sub
End Class
End Namespace 'StackFrameInternal
注釈
StackFrameは、スレッドの実行中に行われるすべての関数呼び出しについて、呼び出し履歴に作成され、プッシュされます。 スタック フレームには常に情報が含 MethodBase まれており、必要に応じてファイル名、行番号、列番号の情報が含まれます。
StackFrame 情報は、デバッグ ビルド構成で最も有益です。 既定では、デバッグ ビルドにはデバッグ シンボルが含まれますが、リリース ビルドには含まれません。 デバッグ シンボルには、オブジェクトの構築に使用されるほとんどのファイル、メソッド名、行番号、列情報が StackFrame 含まれています。
コンストラクター
StackFrame() |
StackFrame クラスの新しいインスタンスを初期化します。 |
StackFrame(Boolean) |
StackFrame クラスの新しいインスタンスを初期化し、オプションでソース情報をキャプチャします。 |
StackFrame(Int32) |
現在のスタック フレーム上のフレームに対応する StackFrame クラスの新しいインスタンスを初期化します。 |
StackFrame(Int32, Boolean) |
現在のスタック フレーム上のフレームに対応する StackFrame クラスの新しいインスタンスを初期化し、オプションでソース情報をキャプチャします。 |
StackFrame(String, Int32) |
指定されたファイル名および行番号だけを含む StackFrame クラスの新しいインスタンスを初期化します。 |
StackFrame(String, Int32, Int32) |
指定されたファイル名、行番号、および列番号だけを含む StackFrame クラスの新しいインスタンスを初期化します。 |
フィールド
OFFSET_UNKNOWN |
ネイティブまたは MSIL (Microsoft Intermediate Language) オフセットが不明の場合に、GetNativeOffset() メソッドまたは GetILOffset() メソッドから返される値を定義します。 このフィールドは定数です。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetFileColumnNumber() |
実行しているコードを格納しているファイルの列番号を取得します。 通常、この情報は実行可能ファイルのデバッグ シンボルから抽出されます。 |
GetFileLineNumber() |
実行しているコードを格納しているファイルの行番号を取得します。 通常、この情報は実行可能ファイルのデバッグ シンボルから抽出されます。 |
GetFileName() |
実行中のコードを格納しているファイル名を取得します。 通常、この情報は実行可能ファイルのデバッグ シンボルから抽出されます。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetILOffset() |
実行中のメソッドの MSIL (Microsoft Intermediate Language) コードの先頭からのオフセットを取得します。 このオフセットは Just-In-Time (JIT) コンパイラがデバッグするコードを生成しているかどうかに依存する近似値になることがあります。 このデバッグ情報の生成は、DebuggableAttribute により制御されます。 |
GetMethod() |
フレームを実行しているメソッドを取得します。 |
GetNativeOffset() |
実行中のメソッドのネイティブ JIT コンパイル コードの先頭からのオフセットを取得します。 このデバッグ情報の生成は、DebuggableAttribute クラスにより制御されます。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
スタック トレースの読み取り可能な形式を構築します。 |
拡張メソッド
GetNativeImageBase(StackFrame) |
このスタック フレームが実行しているネイティブ イメージのベース アドレスへのポインターを返します。 |
GetNativeIP(StackFrame) |
実行されているメソッドのネイティブ コードの先頭へのインターフェイス ポインターを取得します。 |
HasILOffset(StackFrame) |
実行中のメソッドのための IL コードの先頭からのオフセットを使用できるどうかを示します。 |
HasMethod(StackFrame) |
指定したフレームを実行しているメソッドに関する情報があるかどうかを示します。 |
HasNativeImage(StackFrame) |
指定したスタック フレームでネイティブ イメージが使用可能かどうかを示します。 |
HasSource(StackFrame) |
指定したスタック フレームが実行されているコードを格納しているファイルを使用できるかどうかを示します。 |
適用対象
こちらもご覧ください
.NET