模块 Printexc.Slot

module Slot: sig .. end

type t = Printexc.backtrace_slot 
val is_raise : t -> bool

is_raise slotslot 指向代码中的抛出点时为 true,当它来自简单的函数调用时为 false

val is_inline : t -> bool

is_inline slotslot 指向编译器内联的调用时为 true,当它来自任何其他上下文时为 false

val location : t -> Printexc.location option

location slot 返回插槽的位置信息(如果可用),否则返回 None

无法返回位置的一些可能原因如下

  • 该插槽对应于编译器插入的抛出
  • 该插槽对应于未编译调试信息(-g)的程序部分
val name : t -> string option

name slot 返回包含插槽引用的位置的函数或定义的名称。

name slot 如果名称不可用则返回 None,这可能与 location 返回 None 的原因相同。

val format : int -> t -> string option

format pos slot 返回 slot 的字符串表示形式,就像 raw_backtrace_to_string 格式化它一样,假设它是回溯的第 pos 个元素:第 0 个元素的格式与其他元素不同。

整个回溯打印函数也会跳过一些无信息插槽;在这种情况下,format pos slot 返回 None