Files
lserp_cs_5.0/插件库/Cef3.24/Classes.Proxies/CefV8StackTrace.cs
T
2026-07-10 15:25:05 +08:00

58 lines
1.9 KiB
C#

namespace Cef3
{
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Cef3.Interop;
/// <summary>
/// Class representing a V8 stack trace handle. V8 handles can only be accessed
/// from the thread on which they are created. Valid threads for creating a V8
/// handle include the render process main thread (TID_RENDERER) and WebWorker
/// threads. A task runner for posting tasks on the associated thread can be
/// retrieved via the CefV8Context::GetTaskRunner() method.
/// </summary>
public sealed unsafe partial class CefV8StackTrace
{
/// <summary>
/// Returns the stack trace for the currently active context. |frame_limit| is
/// the maximum number of frames that will be captured.
/// </summary>
public static CefV8StackTrace GetCurrent(int frameLimit)
{
return CefV8StackTrace.FromNative(
cef_v8stack_trace_t.get_current(frameLimit)
);
}
/// <summary>
/// Returns true if the underlying handle is valid and it can be accessed on
/// the current thread. Do not call any other methods if this method returns
/// false.
/// </summary>
public bool IsValid
{
get { return cef_v8stack_trace_t.is_valid(_self) != 0; }
}
/// <summary>
/// Returns the number of stack frames.
/// </summary>
public int FrameCount
{
get { return cef_v8stack_trace_t.get_frame_count(_self); }
}
/// <summary>
/// Returns the stack frame at the specified 0-based index.
/// </summary>
public CefV8StackFrame GetFrame(int index)
{
return CefV8StackFrame.FromNative(
cef_v8stack_trace_t.get_frame(_self, index)
);
}
}
}