You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.4 KiB

(*
* Copyright (c) 2017 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*)
type analysis_issue =
{ bug_kind: string
; bug_type: string
; clang_method_kind: string option
; exception_triggered_location: Logging.ocaml_pos option
; lang: string
; procedure_name: string
; source_location: Location.t }
type analysis_stats =
{ analysis_nodes_visited: int
; analysis_status: SymOp.failure_kind option
; analysis_total_nodes: int
; clang_method_kind: string option
; lang: string
; method_location: Location.t
; method_name: string
; num_preposts: int
; symops: int }
type call_trace =
{ call_location: Location.t
; call_result: string
; callee_name: string
; caller_name: string
; lang: string
; reason: string option }
type frontend_exception =
{ ast_node: string option
; exception_triggered_location: Logging.ocaml_pos
; exception_type: string
; lang: string
; source_location_start: Location.t
; source_location_end: Location.t }
type mem_perf =
{ minor_heap_mem: float
; promoted_minor_heap_mem: float
; major_heap_mem: float
; total_allocated_mem: float
; minor_collections: int
; major_collections: int
; heap_compactions: int
; top_heap_size: int
; stack_size: int
; minor_heap_size: int }
type time_perf =
{ real_time: float
; user_time: float
; sys_time: float
; children_user_time: float
; children_sys_time: float }
type performance_stats =
{ lang: string
; source_file: SourceFile.t option
; stats_type: string
; mem_perf: mem_perf option
; time_perf: time_perf option }
type procedures_translated =
{ lang: string
; procedures_translated_failed: int
; procedures_translated_total: int
; source_file: SourceFile.t }
type event =
| AnalysisIssue of analysis_issue
| AnalysisStats of analysis_stats
| CallTrace of call_trace
| FrontendException of frontend_exception
| PerformanceStats of performance_stats
| ProceduresTranslatedSummary of procedures_translated
| UncaughtException of exn * int (** exception, exitcode *)
val get_log_identifier : unit -> string
val prepare : unit -> unit
val log : event -> unit
val dump : unit -> unit