This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 ---

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]