This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Re: [PATCH] Add --core-pattern option to eu-stack
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Wed, 26 Nov 2014 15:44:34 +0100
- Subject: Re: [PATCH] Add --core-pattern option to eu-stack
On Thu, 30 Oct 2014 22:55:41 +0100, Mark Wielaard wrote:
> I did have to lookup how to use this though. And I couldn't make it work
> without adding an -o option to eu-stack to explicitly redirect output
> since it seems you cannot use normal shell redirections
> in /proc/sys/kernel/core_pattern. So I had to use something like
> --output=/proc/%p/cwd/%i.stack. Where does the stdout of the
> core_pattern end up otherwise?
Nowhere as the only open fd is 0 - the piped core file:
lr-x------ 1 root root 64 Nov 26 15:23 0 -> pipe:[5401953]
I did not expect (and did not use) eu-stack directly in
/proc/sys/kernel/core_pattern . I put there just a shell script which ended
with 'exec eu-stack ...'. This is why I have put into --help the comment:
core file fd 0 must be owned only by this process (e.g. use shell exec)
> It would probably be good to have a full example usage in the --help
> message (and tell people to look at man 5 core).
One should IMO put into that shell script dumping of more associated
information, such as /proc/PID/fd/ and other info found in ABRT, it needs to
find some proper appendable output file and/or unique directory etc. I do not
find it all suitable for eu-stack --help. That would be possibly appropriate
for a man page but elfutils has no man pages.
> > The code of core_pattern function has been suggested by Oleg Nesterov.
>
> I was wondering if we could make this a little more generically usable
> and call it --wait-exit or something like that. So people could also use
> it outside the core_pattern if they just want to get a backtrace for a
> known thread when it exits.
I was trying to figure out some more generic functionality than --core-pattern
but given that for core_pattern one needs to:
PTRACE_SEIZE
close(0)
waitpid()
I do not find any part of this sequence separable, do you?
Thanks,
Jan
--- Begin Message ---
[<email.message.Message instance at 0x1539200>]
--- End Message ---