HPCToolkit
cct_insert_backtrace.c File Reference
#include <stdint.h>
#include <stdbool.h>
#include <ucontext.h>
#include <cct/cct_bundle.h>
#include <cct/cct.h>
#include <messages/messages.h>
#include <hpcrun/metrics.h>
#include <lib/prof-lean/lush/lush-support.h>
#include <lib/prof-lean/placeholders.h>
#include <lush/lush-backtrace.h>
#include <thread_data.h>
#include <hpcrun_stats.h>
#include <trace.h>
#include <trampoline/common/trampoline.h>
#include <utilities/ip-normalized.h>
#include "frame.h"
#include <unwind/common/backtrace_info.h>
#include <unwind/common/fence_enum.h>
#include "cct_insert_backtrace.h"
#include "cct_backtrace_finalize.h"
Include dependency graph for cct_insert_backtrace.c:

Go to the source code of this file.

Functions

static cct_node_thelp_hpcrun_backtrace2cct (cct_bundle_t *cct, ucontext_t *context, int metricId, hpcrun_metricVal_t metricIncr, int skipInner, int isSync, struct cct_custom_update_s *custom_update)
 
bool hpcrun_inbounds_main (void *addr)
 
static cct_node_tcct_insert_raw_backtrace (cct_node_t *cct, frame_t *path_beg, frame_t *path_end)
 
void hpcrun_set_retain_recursion_mode (bool mode)
 
cct_node_thpcrun_cct_insert_backtrace (cct_node_t *treenode, frame_t *path_beg, frame_t *path_end)
 
cct_node_thpcrun_cct_insert_backtrace_w_metric (cct_bundle_t *cct, cct_node_t *treenode, int metric_id, frame_t *path_beg, frame_t *path_end, cct_metric_data_t datum, struct cct_custom_update_s *custom_update)
 
cct_node_thpcrun_cct_insert_bt (cct_node_t *node, int metricId, backtrace_t *bt, cct_metric_data_t datum, void **trace_pc)
 
cct_node_thpcrun_backtrace2cct (cct_bundle_t *cct, ucontext_t *context, int metricId, hpcrun_metricVal_t metricIncr, int skipInner, int isSync, struct cct_custom_update_s *custom_update)
 
cct_node_thpcrun_cct_record_backtrace (cct_bundle_t *cct, bool partial, backtrace_info_t *bt, bool tramp_found)
 
cct_node_thpcrun_cct_record_backtrace_w_metric (cct_bundle_t *cct, bool partial, backtrace_info_t *bt, bool tramp_found, int metricId, hpcrun_metricVal_t metricIncr, struct cct_custom_update_s *custom_update)
 

Variables

static bool retain_recursion = false
 

Function Documentation

◆ cct_insert_raw_backtrace()

static cct_node_t* cct_insert_raw_backtrace ( cct_node_t cct,
frame_t path_beg,
frame_t path_end 
)
static

Definition at line 100 of file cct_insert_backtrace.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ help_hpcrun_backtrace2cct()

static cct_node_t * help_hpcrun_backtrace2cct ( cct_bundle_t cct,
ucontext_t *  context,
int  metricId,
hpcrun_metricVal_t  metricIncr,
int  skipInner,
int  isSync,
struct cct_custom_update_s custom_update 
)
static

Definition at line 355 of file cct_insert_backtrace.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_backtrace2cct()

cct_node_t* hpcrun_backtrace2cct ( cct_bundle_t cct,
ucontext_t *  context,
int  metricId,
hpcrun_metricVal_t  metricIncr,
int  skipInner,
int  isSync,
struct cct_custom_update_s custom_update 
)

Definition at line 245 of file cct_insert_backtrace.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_cct_insert_backtrace()

cct_node_t* hpcrun_cct_insert_backtrace ( cct_node_t treenode,
frame_t path_beg,
frame_t path_end 
)

Definition at line 147 of file cct_insert_backtrace.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_cct_insert_backtrace_w_metric()

cct_node_t* hpcrun_cct_insert_backtrace_w_metric ( cct_bundle_t cct,
cct_node_t treenode,
int  metric_id,
frame_t path_beg,
frame_t path_end,
cct_metric_data_t  datum,
struct cct_custom_update_s custom_update 
)

Definition at line 182 of file cct_insert_backtrace.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_cct_insert_bt()

cct_node_t* hpcrun_cct_insert_bt ( cct_node_t node,
int  metricId,
backtrace_t bt,
cct_metric_data_t  datum,
void **  trace_pc 
)

Definition at line 218 of file cct_insert_backtrace.c.

Here is the call graph for this function:

◆ hpcrun_cct_record_backtrace()

cct_node_t* hpcrun_cct_record_backtrace ( cct_bundle_t cct,
bool  partial,
backtrace_info_t bt,
bool  tramp_found 
)

Definition at line 269 of file cct_insert_backtrace.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_cct_record_backtrace_w_metric()

cct_node_t* hpcrun_cct_record_backtrace_w_metric ( cct_bundle_t cct,
bool  partial,
backtrace_info_t bt,
bool  tramp_found,
int  metricId,
hpcrun_metricVal_t  metricIncr,
struct cct_custom_update_s custom_update 
)

Definition at line 314 of file cct_insert_backtrace.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_inbounds_main()

bool hpcrun_inbounds_main ( void *  addr)

Definition at line 284 of file main.c.

Here is the caller graph for this function:

◆ hpcrun_set_retain_recursion_mode()

void hpcrun_set_retain_recursion_mode ( bool  mode)

Definition at line 138 of file cct_insert_backtrace.c.

Here is the caller graph for this function:

Variable Documentation

◆ retain_recursion

bool retain_recursion = false
static

Definition at line 92 of file cct_insert_backtrace.c.