projects
/
lttv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
format update
[lttv.git]
/
ltt
/
branches
/
poly
/
lttv
/
lttv
/
state.c
diff --git
a/ltt/branches/poly/lttv/lttv/state.c
b/ltt/branches/poly/lttv/lttv/state.c
index 29ab33cde65f4f8a3b33391325795767833f8779..05a6aa53683536d5669dbbb6072b190271f80258 100644
(file)
--- a/
ltt/branches/poly/lttv/lttv/state.c
+++ b/
ltt/branches/poly/lttv/lttv/state.c
@@
-1336,7
+1336,7
@@
static gboolean process_fork(void *hook_data, void *call_data)
// g_assert(process->pid == parent_pid);
child_process = lttv_state_find_process(ts, ANY_CPU, child_pid);
if(child_process == NULL) {
// g_assert(process->pid == parent_pid);
child_process = lttv_state_find_process(ts, ANY_CPU, child_pid);
if(child_process == NULL) {
- lttv_state_create_process(ts, process, cpu,
+
child_process =
lttv_state_create_process(ts, process, cpu,
child_pid, LTTV_STATE_UNNAMED, &s->parent.timestamp);
} else {
/* The process has already been created : due to time imprecision between
child_pid, LTTV_STATE_UNNAMED, &s->parent.timestamp);
} else {
/* The process has already been created : due to time imprecision between
@@
-1349,6
+1349,8
@@
static gboolean process_fork(void *hook_data, void *call_data)
before the fork event */
child_process->ppid = process->pid;
}
before the fork event */
child_process->ppid = process->pid;
}
+ g_assert(child_process->name == LTTV_STATE_UNNAMED);
+ child_process->name = process->name;
return FALSE;
}
return FALSE;
}
@@
-1498,7
+1500,8
@@
static gboolean enum_process_state(void *hook_data, void *call_data)
&s->parent.timestamp);
/* Keep the stack bottom : a running user mode */
&s->parent.timestamp);
/* Keep the stack bottom : a running user mode */
-
+#if 0
+ /* Disabled because of inconsistencies in the current statedump states. */
if(mode == LTTV_STATE_USER_MODE) {
/* Only keep the bottom */
process->execution_stack = g_array_set_size(process->execution_stack, 1);
if(mode == LTTV_STATE_USER_MODE) {
/* Only keep the bottom */
process->execution_stack = g_array_set_size(process->execution_stack, 1);
@@
-1511,7
+1514,17
@@
static gboolean enum_process_state(void *hook_data, void *call_data)
es->s = status;
es->n = submode;
}
es->s = status;
es->n = submode;
}
+#endif //0
+ /* UNKNOWN STATE */
+ {
+ LttvExecutionState *es;
+ es = process->state = &g_array_index(process->execution_stack,
+ LttvExecutionState, 1);
+ es->t = LTTV_STATE_MODE_UNKNOWN;
+ es->s = LTTV_STATE_UNNAMED;
+ es->n = LTTV_STATE_SUBMODE_UNKNOWN;
+ }
} else {
/* The process has already been created :
* Probably was forked while dumping the process state or
} else {
/* The process has already been created :
* Probably was forked while dumping the process state or
@@
-1672,7
+1685,7
@@
void lttv_state_add_event_hooks(LttvTracesetState *self)
}
}
}
}
}
}
- lttv_attribute_find(
self
->parent.a, LTTV_STATE_HOOKS, LTTV_POINTER, &val);
+ lttv_attribute_find(
ts
->parent.a, LTTV_STATE_HOOKS, LTTV_POINTER, &val);
*(val.v_pointer) = hooks;
}
}
*(val.v_pointer) = hooks;
}
}
@@
-1707,7
+1720,7
@@
void lttv_state_remove_event_hooks(LttvTracesetState *self)
nb_trace = lttv_traceset_number(traceset);
for(i = 0 ; i < nb_trace ; i++) {
ts = LTTV_TRACE_STATE(self->parent.traces[i]);
nb_trace = lttv_traceset_number(traceset);
for(i = 0 ; i < nb_trace ; i++) {
ts = LTTV_TRACE_STATE(self->parent.traces[i]);
- lttv_attribute_find(
self
->parent.a, LTTV_STATE_HOOKS, LTTV_POINTER, &val);
+ lttv_attribute_find(
ts
->parent.a, LTTV_STATE_HOOKS, LTTV_POINTER, &val);
hooks = *(val.v_pointer);
/* Remove these hooks from each event_by_id hooks list */
hooks = *(val.v_pointer);
/* Remove these hooks from each event_by_id hooks list */
This page took
0.024196 seconds
and
4
git commands to generate.