FILE *fp = (FILE *)user_data;
guint i;
+ guint64 address;
process = (LttvProcessState *)value;
fprintf(fp,
-" <PROCESS CORE=%p PID=%u PPID=%u TYPE=\"%s\"CTIME_S=%lu CTIME_NS=%lu NAME=\"%s\" BRAND=\"%s\" CPU=\"%u\">\n",
- process, process->pid, process->ppid, g_quark_to_string(process->type),
+" <PROCESS CORE=%p PID=%u TGID=%u PPID=%u TYPE=\"%s\"CTIME_S=%lu CTIME_NS=%lu ITIME_S=%lu ITIME_NS=%lu NAME=\"%s\" BRAND=\"%s\" CPU=\"%u\" PROCESS_TYPE=%u>\n",
+ process, process->pid, process->tgid, process->ppid,
+ g_quark_to_string(process->type),
process->creation_time.tv_sec,
- process->creation_time.tv_nsec, g_quark_to_string(process->name),
+ process->creation_time.tv_nsec,
+ process->insertion_time.tv_sec,
+ process->insertion_time.tv_nsec,
+ g_quark_to_string(process->name),
g_quark_to_string(process->brand),
- process->cpu);
+ process->cpu,
+ process->type);
for(i = 0 ; i < process->execution_stack->len; i++) {
es = &g_array_index(process->execution_stack, LttvExecutionState, i);
fprintf(fp, " CHANGE_S=%lu CHANGE_NS=%lu STATUS=\"%s\"/>\n",
es->change.tv_sec, es->change.tv_nsec, g_quark_to_string(es->s));
}
+
+ for(i = 0 ; i < process->execution_stack->len; i++) {
+ address = &g_array_index(process->user_stack, guint64, i);
+ fprintf(fp, " <USER_STACK ADDRESS=\"%llu\"/>\n",
+ address);
+ }
+
+ if(process->usertrace) {
+ fprintf(fp, " <USERTRACE NAME=\"%s\" CPU=%u\n/>",
+ process->usertrace->tracefile_name,
+ process->usertrace->cpu);
+ }
+
+
fprintf(fp, " </PROCESS>\n");
}
/* Child PID */
child_pid = ltt_event_get_unsigned(e, thf->f2);
+ s->parent.target_pid = child_pid;
/* Child TGID */
if(thf->f3) child_tgid = ltt_event_get_unsigned(e, thf->f3);
/* PID */
pid = ltt_event_get_unsigned(e, thf->f1);
+ s->parent.target_pid = pid;
process = lttv_state_find_process(ts, ANY_CPU, pid);
es = &g_array_index(process->execution_stack, LttvExecutionState, 0);
LttvProcessState *process; // = ts->running_process[cpu];
pid = ltt_event_get_unsigned(e, thf->f1);
+ s->parent.target_pid = pid;
// FIXME : Add this test in the "known state" section
// g_assert(process->pid == pid);
/* PID of the process to release */
release_pid = ltt_event_get_unsigned(e, thf->f1);
+ s->parent.target_pid = release_pid;
g_assert(release_pid != 0);
/* PID */
pid = ltt_event_get_unsigned(e, thf->f1);
-
+ s->parent.target_pid = pid;
+
/* Parent PID */
parent_pid = ltt_event_get_unsigned(e, thf->f2);