mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
a2b7d0e0bf
Add support for tracing onto the PipelineC. This is done by: 1. Creating wrapper functions for each PipelineC function with the script in `scripts/PipelineC_add_tracing.py`. These will call a special function called `wrap` which will ultimately call a method with a `_` prepended to the name 2. Conversion of all PipelineC methods in `PipelineC.cpp` to `static` and their rename with a `_` in front, in order for them to work with the wrapper function in (1) 3. Generation of 2 additional include files, one for types and one for functions, to be used by users of tracing files in order to have introspection. These steps allow the creation of a trace file with the use of the `REVNG_C_API_TRACE_PATH` environment variable. The traces can then be used in conjunction with the `revng trace run` and `revng trace inspect` commands.
29 lines
914 B
C
29 lines
914 B
C
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
// NOLINTBEGIN
|
|
|
|
typedef struct rp_manager rp_manager;
|
|
typedef struct rp_kind rp_kind;
|
|
typedef struct rp_rank rp_rank;
|
|
typedef struct rp_step rp_step;
|
|
typedef struct rp_container rp_container;
|
|
typedef struct rp_container_identifier rp_container_identifier;
|
|
typedef struct rp_target rp_target;
|
|
typedef struct rp_targets_list rp_targets_list;
|
|
typedef struct rp_analysis rp_analysis;
|
|
typedef struct rp_diff_map rp_diff_map;
|
|
typedef struct rp_error rp_error;
|
|
typedef struct rp_document_error rp_document_error;
|
|
typedef struct rp_simple_error rp_simple_error;
|
|
typedef struct rp_string_map rp_string_map;
|
|
typedef struct rp_invalidations rp_invalidations;
|
|
typedef struct rp_buffer rp_buffer;
|
|
typedef struct rp_container_targets_map rp_container_targets_map;
|
|
typedef struct rp_analyses_list rp_analyses_list;
|
|
|
|
// NOLINTEND
|