Commit faf41eb5 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov

dump: Dump cmdline and envirion parameters

It implies update to kernel side as well.
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Acked-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent e69cea25
......@@ -614,6 +614,11 @@ static int dump_task_core_seized(pid_t pid, int pid_dir, struct proc_pid_stat *s
core->tc.mm_start_stack = stat->start_stack;
core->tc.mm_start_brk = stat->start_brk;
core->tc.mm_arg_start = stat->arg_start;
core->tc.mm_arg_end = stat->arg_end;
core->tc.mm_env_start = stat->env_start;
core->tc.mm_env_end = stat->env_end;
ret = get_task_sigmask(pid, pid_dir, &core->tc.blk_sigset);
if (ret)
goto err_free;
......
......@@ -237,6 +237,10 @@ struct task_core_entry {
u64 mm_start_stack;
u64 mm_start_brk;
u64 mm_brk;
u64 mm_arg_start;
u64 mm_arg_end;
u64 mm_env_start;
u64 mm_env_end;
u64 blk_sigset;
};
......
......@@ -52,6 +52,10 @@ struct proc_pid_stat {
unsigned long start_data;
unsigned long end_data;
unsigned long start_brk;
unsigned long arg_start;
unsigned long arg_end;
unsigned long env_start;
unsigned long env_end;
int exit_code;
};
......
......@@ -191,7 +191,7 @@ int parse_pid_stat(pid_t pid, int pid_dir, struct proc_pid_stat *s)
"%d " PROC_TASK_COMM_LEN_FMT " %c %d %d %d %d %d %u %lu %lu %lu %lu "
"%lu %lu %ld %ld %ld %ld %d %d %llu %lu %ld %lu %lu %lu %lu "
"%lu %lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld "
"%lu %lu %lu %d",
"%lu %lu %lu %lu %lu %lu %lu %d",
&s->pid,
s->comm,
&s->state,
......@@ -239,9 +239,13 @@ int parse_pid_stat(pid_t pid, int pid_dir, struct proc_pid_stat *s)
&s->start_data,
&s->end_data,
&s->start_brk,
&s->arg_start,
&s->arg_end,
&s->env_start,
&s->env_end,
&s->exit_code);
if (n < 48) {
if (n < 52) {
pr_perror("Parsing %d's stat failed (#fields do not match)", pid);
return -1;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment