package llvm
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=82401fea7b79d0078043f7598b835284d6650a75b93e64b6f761ea7b63097501
md5=0333b37c90e183d5298470d5b70a87e4
doc/llvm_debuginfo/Llvm_debuginfo/index.html
Module Llvm_debuginfo
module DWARFSourceLanguageKind : sig ... end
Source languages known by DWARF.
module DIFlag : sig ... end
diflags_set f
Construct an lldiflags value with a single flag f
.
diflags_set fs f
Include flag f
in fs
and return the new value.
module MetadataKind : sig ... end
The kind of metadata nodes.
module DWARFEmissionKind : sig ... end
The amount of debug information to emit.
debug_metadata_version ()
The current debug metadata version number
val get_module_debug_metadata_version : Llvm.llmodule -> int
get_module_debug_metadata_version m
Version of metadata present in m
.
val dibuilder : Llvm.llmodule -> lldibuilder
dibuilder m
Create a debug info builder for m
.
val dibuild_finalize : lldibuilder -> unit
dibuild_finalize dib
Construct any deferred debug info descriptors.
val dibuild_create_compile_unit :
lldibuilder ->
DWARFSourceLanguageKind.t ->
file_ref:Llvm.llmetadata ->
producer:string ->
is_optimized:bool ->
flags:string ->
runtime_ver:int ->
split_name:string ->
DWARFEmissionKind.t ->
dwoid:int ->
di_inlining:bool ->
di_profiling:bool ->
sys_root:string ->
sdk:string ->
Llvm.llmetadata
dibuild_create_compile_unit
A CompileUnit provides an anchor for all debugging information generated during this instance of compilation. See LLVMDIBuilderCreateCompileUnit.
val dibuild_create_file :
lldibuilder ->
filename:string ->
directory:string ->
Llvm.llmetadata
dibuild_create_file
Create a file descriptor to hold debugging information for a file. See LLVMDIBuilderCreateFile.
val dibuild_create_module :
lldibuilder ->
parent_ref:Llvm.llmetadata ->
name:string ->
config_macros:string ->
include_path:string ->
sys_root:string ->
Llvm.llmetadata
dibuild_create_module
Create a new descriptor for a module with the specified parent scope. See LLVMDIBuilderCreateModule.
val dibuild_create_namespace :
lldibuilder ->
parent_ref:Llvm.llmetadata ->
name:string ->
export_symbols:bool ->
Llvm.llmetadata
dibuild_create_namespace
Create a new descriptor for a namespace with the specified parent scope. See LLVMDIBuilderCreateNameSpace
val dibuild_create_function :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
linkage_name:string ->
file:Llvm.llmetadata ->
line_no:int ->
ty:Llvm.llmetadata ->
is_local_to_unit:bool ->
is_definition:bool ->
scope_line:int ->
flags:lldiflags ->
is_optimized:bool ->
Llvm.llmetadata
dibuild_create_function
Create a new descriptor for the specified subprogram. See LLVMDIBuilderCreateFunction.
val dibuild_create_lexical_block :
lldibuilder ->
scope:Llvm.llmetadata ->
file:Llvm.llmetadata ->
line:int ->
column:int ->
Llvm.llmetadata
dibuild_create_lexical_block
Create a descriptor for a lexical block with the specified parent context. See LLVMDIBuilderCreateLexicalBlock
val llmetadata_null : unit -> Llvm.llmetadata
llmetadata_null ()
llmetadata is a wrapper around "llvm::Metadata *". This function returns a nullptr valued llmetadata. For example, it can be used to convey an llmetadata for "void" type.
val dibuild_create_debug_location :
?inlined_at:Llvm.llmetadata ->
Llvm.llcontext ->
line:int ->
column:int ->
scope:Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create
Create a new DebugLocation that describes a source location. See LLVMDIBuilderCreateDebugLocation
val di_location_get_line : location:Llvm.llmetadata -> int
di_location_get_line l
Get the line number of debug location l
.
val di_location_get_column : location:Llvm.llmetadata -> int
di_location_get_column l
Get the column number of debug location l
.
val di_location_get_scope : location:Llvm.llmetadata -> Llvm.llmetadata
di_location_get_scope l
Get the local scope associated with debug location l
.
val di_location_get_inlined_at :
location:Llvm.llmetadata ->
Llvm.llmetadata option
di_location_get_inlined_at l
Get the "inlined at" location associated with debug location l
, if it exists.
val di_scope_get_file : scope:Llvm.llmetadata -> Llvm.llmetadata option
di_scope_get_file l
Get the metadata of the file associated with scope s
if it exists.
val di_file_get_directory : file:Llvm.llmetadata -> string
di_file_get_directory f
Get the directory of file f
.
val di_file_get_filename : file:Llvm.llmetadata -> string
di_file_get_filename f
Get the name of file f
.
val di_file_get_source : file:Llvm.llmetadata -> string
di_file_get_source f
Get the source of file f
.
val dibuild_get_or_create_type_array :
lldibuilder ->
data:Llvm.llmetadata array ->
Llvm.llmetadata
dibuild_get_or_create_type_array
Create a type array. See LLVMDIBuilderGetOrCreateTypeArray.
val dibuild_get_or_create_array :
lldibuilder ->
data:Llvm.llmetadata array ->
Llvm.llmetadata
dibuild_get_or_create_array
Create an array of DI Nodes. See LLVMDIBuilderGetOrCreateArray.
val dibuild_create_constant_value_expression :
lldibuilder ->
int ->
Llvm.llmetadata
dibuild_create_constant_value_expression
Create a new descriptor for the specified variable that does not have an address, but does have a constant value. See LLVMDIBuilderCreateConstantValueExpression.
val dibuild_create_global_variable_expression :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
linkage:string ->
file:Llvm.llmetadata ->
line:int ->
ty:Llvm.llmetadata ->
is_local_to_unit:bool ->
expr:Llvm.llmetadata ->
decl:Llvm.llmetadata ->
align_in_bits:int ->
Llvm.llmetadata
dibuild_create_global_variable_expression
Create a new descriptor for the specified variable. See LLVMDIBuilderCreateGlobalVariableExpression.
val di_global_variable_expression_get_variable :
Llvm.llmetadata ->
Llvm.llmetadata option
di_global_variable_expression_get_variable gve
returns the debug variable of gve
, which must be a DIGlobalVariableExpression
. See LLVMDIGlobalVariableExpressionGetVariable.
val di_variable_get_line : Llvm.llmetadata -> int
di_variable_get_line v
returns the line number of the variable v
. See LLVMDIVariableGetLine.
val di_variable_get_file : Llvm.llmetadata -> Llvm.llmetadata option
di_variable_get_file v
returns the file of the variable v
. See LLVMDIVariableGetFile.
val dibuild_create_subroutine_type :
lldibuilder ->
file:Llvm.llmetadata ->
param_types:Llvm.llmetadata array ->
lldiflags ->
Llvm.llmetadata
dibuild_create_subroutine_type
Create subroutine type. See LLVMDIBuilderCreateSubroutineType
val dibuild_create_enumerator :
lldibuilder ->
name:string ->
value:int ->
is_unsigned:bool ->
Llvm.llmetadata
dibuild_create_enumerator
Create debugging information entry for an enumerator. See LLVMDIBuilderCreateEnumerator
val dibuild_create_enumeration_type :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_number:int ->
size_in_bits:int ->
align_in_bits:int ->
elements:Llvm.llmetadata array ->
class_ty:Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create_enumeration_type
Create debugging information entry for an enumeration. See LLVMDIBuilderCreateEnumerationType.
val dibuild_create_union_type :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_number:int ->
size_in_bits:int ->
align_in_bits:int ->
lldiflags ->
elements:Llvm.llmetadata array ->
run_time_language:int ->
unique_id:string ->
Llvm.llmetadata
dibuild_create_union_type
Create debugging information entry for a union. See LLVMDIBuilderCreateUnionType.
val dibuild_create_array_type :
lldibuilder ->
size:int ->
align_in_bits:int ->
ty:Llvm.llmetadata ->
subscripts:Llvm.llmetadata array ->
Llvm.llmetadata
dibuild_create_array_type
Create debugging information entry for an array. See LLVMDIBuilderCreateArrayType.
val dibuild_create_vector_type :
lldibuilder ->
size:int ->
align_in_bits:int ->
ty:Llvm.llmetadata ->
subscripts:Llvm.llmetadata array ->
Llvm.llmetadata
dibuild_create_vector_type
Create debugging information entry for a vector type. See LLVMDIBuilderCreateVectorType.
val dibuild_create_unspecified_type :
lldibuilder ->
name:string ->
Llvm.llmetadata
dibuild_create_unspecified_type
Create a DWARF unspecified type.
val dibuild_create_basic_type :
lldibuilder ->
name:string ->
size_in_bits:int ->
encoding:int ->
lldiflags ->
Llvm.llmetadata
dibuild_create_basic_type
Create debugging information entry for a basic type. See LLVMDIBuilderCreateBasicType.
val dibuild_create_pointer_type :
lldibuilder ->
pointee_ty:Llvm.llmetadata ->
size_in_bits:int ->
align_in_bits:int ->
address_space:int ->
name:string ->
Llvm.llmetadata
dibuild_create_pointer_type
Create debugging information entry for a pointer. See LLVMDIBuilderCreatePointerType.
val dibuild_create_struct_type :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_number:int ->
size_in_bits:int ->
align_in_bits:int ->
lldiflags ->
derived_from:Llvm.llmetadata ->
elements:Llvm.llmetadata array ->
DWARFSourceLanguageKind.t ->
vtable_holder:Llvm.llmetadata ->
unique_id:string ->
Llvm.llmetadata
dibuild_create_struct_type
Create debugging information entry for a struct. See LLVMDIBuilderCreateStructType
val dibuild_create_member_type :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_number:int ->
size_in_bits:int ->
align_in_bits:int ->
offset_in_bits:int ->
lldiflags ->
ty:Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create_member_type
Create debugging information entry for a member. See LLVMDIBuilderCreateMemberType.
val dibuild_create_static_member_type :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_number:int ->
ty:Llvm.llmetadata ->
lldiflags ->
const_val:Llvm.llvalue ->
align_in_bits:int ->
Llvm.llmetadata
dibuild_create_static_member_type
Create debugging information entry for a C++ static data member. See LLVMDIBuilderCreateStaticMemberType
val dibuild_create_member_pointer_type :
lldibuilder ->
pointee_type:Llvm.llmetadata ->
class_type:Llvm.llmetadata ->
size_in_bits:int ->
align_in_bits:int ->
lldiflags ->
Llvm.llmetadata
dibuild_create_member_pointer_type
Create debugging information entry for a pointer to member. See LLVMDIBuilderCreateMemberPointerType
val dibuild_create_object_pointer_type :
lldibuilder ->
Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create_object_pointer_type dib ty
Create a uniqued DIType* clone with FlagObjectPointer and FlagArtificial set. dib
is the dibuilder value and ty
the underlying type to which this pointer points.
val dibuild_create_qualified_type :
lldibuilder ->
tag:int ->
Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create_qualified_type dib tag ty
Create debugging information entry for a qualified type, e.g. 'const int'. dib
is the dibuilder value, tag
identifyies the type and ty
is the base type.
val dibuild_create_reference_type :
lldibuilder ->
tag:int ->
Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create_reference_type dib tag ty
Create debugging information entry for a reference type. dib
is the dibuilder value, tag
identifyies the type and ty
is the base type.
val dibuild_create_null_ptr_type : lldibuilder -> Llvm.llmetadata
dibuild_create_null_ptr_type dib
Create C++11 nullptr type.
val dibuild_create_typedef :
lldibuilder ->
ty:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_no:int ->
scope:Llvm.llmetadata ->
align_in_bits:int ->
Llvm.llmetadata
dibuild_create_typedef
Create debugging information entry for a typedef. See LLVMDIBuilderCreateTypedef.
val dibuild_create_inheritance :
lldibuilder ->
ty:Llvm.llmetadata ->
base_ty:Llvm.llmetadata ->
base_offset:int ->
vb_ptr_offset:int ->
lldiflags ->
Llvm.llmetadata
dibuild_create_inheritance
Create debugging information entry to establish inheritance relationship between two types. See LLVMDIBuilderCreateInheritance.
val dibuild_create_forward_decl :
lldibuilder ->
tag:int ->
name:string ->
scope:Llvm.llmetadata ->
file:Llvm.llmetadata ->
line:int ->
runtime_lang:int ->
size_in_bits:int ->
align_in_bits:int ->
unique_identifier:string ->
Llvm.llmetadata
dibuild_create_forward_decl
Create a permanent forward-declared type. See LLVMDIBuilderCreateForwardDecl.
val dibuild_create_replaceable_composite_type :
lldibuilder ->
tag:int ->
name:string ->
scope:Llvm.llmetadata ->
file:Llvm.llmetadata ->
line:int ->
runtime_lang:int ->
size_in_bits:int ->
align_in_bits:int ->
lldiflags ->
unique_identifier:string ->
Llvm.llmetadata
dibuild_create_replaceable_composite_type
Create a temporary forward-declared type. See LLVMDIBuilderCreateReplaceableCompositeType.
val dibuild_create_bit_field_member_type :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_num:int ->
size_in_bits:int ->
offset_in_bits:int ->
storage_offset_in_bits:int ->
lldiflags ->
ty:Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create_bit_field_member_type
Create debugging information entry for a bit field member. See LLVMDIBuilderCreateBitFieldMemberType.
val dibuild_create_class_type :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line_number:int ->
size_in_bits:int ->
align_in_bits:int ->
offset_in_bits:int ->
lldiflags ->
derived_from:Llvm.llmetadata ->
elements:Llvm.llmetadata array ->
vtable_holder:Llvm.llmetadata ->
template_params_node:Llvm.llmetadata ->
unique_identifier:string ->
Llvm.llmetadata
dibuild_create_class_type
Create debugging information entry for a class. See LLVMDIBuilderCreateClassType.
val dibuild_create_artificial_type :
lldibuilder ->
ty:Llvm.llmetadata ->
Llvm.llmetadata
dibuild_create_artificial_type dib ty
Create a uniqued DIType* clone with FlagArtificial set. dib
is the dibuilder value and ty
the underlying type.
val di_type_get_name : Llvm.llmetadata -> string
di_type_get_name m
Get the name of DIType m
.
val di_type_get_size_in_bits : Llvm.llmetadata -> int
di_type_get_size_in_bits m
Get size in bits of DIType m
.
val di_type_get_offset_in_bits : Llvm.llmetadata -> int
di_type_get_offset_in_bits m
Get offset in bits of DIType m
.
val di_type_get_align_in_bits : Llvm.llmetadata -> int
di_type_get_align_in_bits m
Get alignment in bits of DIType m
.
val di_type_get_line : Llvm.llmetadata -> int
di_type_get_line m
Get source line where DIType m
is declared.
val di_type_get_flags : Llvm.llmetadata -> lldiflags
di_type_get_flags m
Get the flags associated with DIType m
.
val get_subprogram : Llvm.llvalue -> Llvm.llmetadata option
get_subprogram f
Get the metadata of the subprogram attached to function f
.
val set_subprogram : Llvm.llvalue -> Llvm.llmetadata -> unit
set_subprogram f m
Set the subprogram m
attached to function f
.
val di_subprogram_get_line : Llvm.llmetadata -> int
di_subprogram_get_line m
Get the line associated with subprogram m
.
val instr_get_debug_loc : Llvm.llvalue -> Llvm.llmetadata option
instr_get_debug_loc i
Get the debug location for instruction i
.
val instr_set_debug_loc : Llvm.llvalue -> Llvm.llmetadata option -> unit
instr_set_debug_loc i mopt
If mopt
is None location metadata of i
is cleared, Otherwise location of i
is set to the value in mopt
.
val get_metadata_kind : Llvm.llmetadata -> MetadataKind.t
get_metadata_kind
Obtain the enumerated type of a Metadata instance.
val dibuild_create_auto_variable :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
file:Llvm.llmetadata ->
line:int ->
ty:Llvm.llmetadata ->
always_preserve:bool ->
lldiflags ->
align_in_bits:int ->
Llvm.llmetadata
dibuild_create_auto_variable
Create a new descriptor for a local auto variable.
val dibuild_create_parameter_variable :
lldibuilder ->
scope:Llvm.llmetadata ->
name:string ->
argno:int ->
file:Llvm.llmetadata ->
line:int ->
ty:Llvm.llmetadata ->
always_preserve:bool ->
lldiflags ->
Llvm.llmetadata
dibuild_create_parameter_variable
Create a new descriptor for a function parameter variable.
val dibuild_insert_declare_before :
lldibuilder ->
storage:Llvm.llvalue ->
var_info:Llvm.llmetadata ->
expr:Llvm.llmetadata ->
location:Llvm.llmetadata ->
instr:Llvm.llvalue ->
Llvm.lldbgrecord
dibuild_insert_declare_before
Insert a new llvm.dbg.declare intrinsic call before the given instruction instr
.
val dibuild_insert_declare_at_end :
lldibuilder ->
storage:Llvm.llvalue ->
var_info:Llvm.llmetadata ->
expr:Llvm.llmetadata ->
location:Llvm.llmetadata ->
block:Llvm.llbasicblock ->
Llvm.lldbgrecord
dibuild_insert_declare_at_end
Insert a new llvm.dbg.declare intrinsic call at the end of basic block block
. If block
has a terminator instruction, the intrinsic is inserted before that terminator instruction.
val dibuild_expression : lldibuilder -> Stdlib.Int64.t array -> Llvm.llmetadata
dibuild_expression
Create a new descriptor for the specified variable which has a complex address expression for its address. See LLVMDIBuilderCreateExpression.
val is_new_dbg_info_format : Llvm.llmodule -> bool
is_new_dbg_info_format
See LLVMIsNewDbgInfoFormat
val set_is_new_dbg_info_format : Llvm.llmodule -> bool -> unit
set_is_new_dbg_info_format
See LLVMSetIsNewDbgInfoFormat