| File: System\Diagnostics\StackFrameExtensions.cs | Web Access |
| Project: src\runtime\src\coreclr\nativeaot\System.Private.CoreLib\src\System.Private.CoreLib.csproj (System.Private.CoreLib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Runtime; namespace System.Diagnostics { public static class StackFrameExtensions { /// <summary> /// Return load address of the native image pointed to by the stack frame. /// </summary> public static IntPtr GetNativeImageBase(this StackFrame stackFrame) { return RuntimeImports.RhGetOSModuleFromPointer(stackFrame.GetNativeIPAddress()); } /// <summary> /// Return stack frame native IP address. /// </summary> public static IntPtr GetNativeIP(this StackFrame stackFrame) { return stackFrame.GetNativeIPAddress(); } /// <summary> /// Return true when the stack frame information can be converted to IL offset information /// within the MSIL method body. /// </summary> public static bool HasILOffset(this StackFrame stackFrame) { return stackFrame.GetILOffset() != StackFrame.OFFSET_UNKNOWN; } /// <summary> /// Return true when a MethodBase reflection info is available for the stack frame /// </summary> public static bool HasMethod(this StackFrame stackFrame) { return stackFrame.HasMethod(); } /// <summary> /// Return true when the stack frame information corresponds to a native image /// </summary> public static bool HasNativeImage(this StackFrame stackFrame) { // In .NET Native, everything has a native image (at least today) return true; } /// <summary> /// Return true when stack frame information supports source file / line information lookup /// </summary> public static bool HasSource(this StackFrame stackFrame) { return stackFrame.GetFileName() != null; } } }