mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
Implement tracker_add_sample()
This commit is contained in:
23
tracker.c
23
tracker.c
@ -8,6 +8,15 @@ typedef struct new_process_t new_process_t;
|
|||||||
typedef struct new_map_t new_map_t;
|
typedef struct new_map_t new_map_t;
|
||||||
typedef struct sample_t sample_t;
|
typedef struct sample_t sample_t;
|
||||||
|
|
||||||
|
struct tracker_t
|
||||||
|
{
|
||||||
|
StackStash *stash;
|
||||||
|
|
||||||
|
size_t n_event_bytes;
|
||||||
|
size_t n_allocated_bytes;
|
||||||
|
uint8_t *events;
|
||||||
|
};
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
NEW_PROCESS,
|
NEW_PROCESS,
|
||||||
@ -40,13 +49,6 @@ struct sample_t
|
|||||||
StackNode * trace;
|
StackNode * trace;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct tracker_t
|
|
||||||
{
|
|
||||||
size_t n_event_bytes;
|
|
||||||
size_t n_allocated_bytes;
|
|
||||||
uint8_t *events;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define DEFAULT_SIZE (1024 * 1024 * 4)
|
#define DEFAULT_SIZE (1024 * 1024 * 4)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -137,6 +139,13 @@ tracker_add_sample (tracker_t *tracker,
|
|||||||
uint64_t *ips,
|
uint64_t *ips,
|
||||||
int n_ips)
|
int n_ips)
|
||||||
{
|
{
|
||||||
|
sample_t event;
|
||||||
|
|
||||||
|
event.type = SAMPLE;
|
||||||
|
event.pid = pid;
|
||||||
|
event.trace = stack_stash_add_trace (tracker->stash, ips, n_ips, 1);
|
||||||
|
|
||||||
|
tracker_append (tracker, &event, sizeof (event));
|
||||||
}
|
}
|
||||||
|
|
||||||
Profile *
|
Profile *
|
||||||
|
|||||||
Reference in New Issue
Block a user