mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-09 14:40:54 +00:00
Add code to append map and process events
This commit is contained in:
39
tracker.c
39
tracker.c
@ -86,14 +86,49 @@ tracker_free (tracker_t *tracker)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define COPY_STRING(dest, src) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
strncpy (dest, src, sizeof (dest) - 1); \
|
||||||
|
dest[sizeof (dest) - 1] = 0; \
|
||||||
|
} \
|
||||||
|
while (0)
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
tracker_add_process (tracker_t *tracker)
|
tracker_add_process (tracker_t * tracker,
|
||||||
|
pid_t pid,
|
||||||
|
const char *command_line)
|
||||||
{
|
{
|
||||||
|
new_process_t event;
|
||||||
|
|
||||||
|
event.type = NEW_PROCESS;
|
||||||
|
event.pid = pid;
|
||||||
|
COPY_STRING (event.command_line, command_line);
|
||||||
|
|
||||||
|
tracker_append (tracker, &event, sizeof (event));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
tracker_add_map (tracker_t *tracker)
|
tracker_add_map (tracker_t * tracker,
|
||||||
|
pid_t pid,
|
||||||
|
uint64_t start,
|
||||||
|
uint64_t end,
|
||||||
|
uint64_t offset,
|
||||||
|
uint64_t inode,
|
||||||
|
const char *filename)
|
||||||
{
|
{
|
||||||
|
new_map_t event;
|
||||||
|
|
||||||
|
event.type = NEW_MAP;
|
||||||
|
event.pid = pid;
|
||||||
|
COPY_STRING (event.file_name, filename);
|
||||||
|
event.start = start;
|
||||||
|
event.end = end;
|
||||||
|
event.offset = offset;
|
||||||
|
event.inode = inode;
|
||||||
|
|
||||||
|
tracker_append (tracker, &event, sizeof (event));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
13
tracker.h
13
tracker.h
@ -6,8 +6,17 @@ typedef struct tracker_t tracker_t;
|
|||||||
tracker_t *tracker_new (void);
|
tracker_t *tracker_new (void);
|
||||||
void tracker_free (tracker_t *);
|
void tracker_free (tracker_t *);
|
||||||
|
|
||||||
void tracker_add_process (tracker_t *tracker);
|
void tracker_add_process (tracker_t *tracker,
|
||||||
void tracker_add_map (tracker_t *tracker);
|
pid_t pid,
|
||||||
|
const char *command_line);
|
||||||
|
void
|
||||||
|
tracker_add_map (tracker_t * tracker,
|
||||||
|
pid_t pid,
|
||||||
|
uint64_t start,
|
||||||
|
uint64_t end,
|
||||||
|
uint64_t offset,
|
||||||
|
uint64_t inode,
|
||||||
|
const char *filename);
|
||||||
void tracker_add_sample (tracker_t *tracker,
|
void tracker_add_sample (tracker_t *tracker,
|
||||||
pid_t pid,
|
pid_t pid,
|
||||||
uint64_t *ips,
|
uint64_t *ips,
|
||||||
|
|||||||
Reference in New Issue
Block a user