From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7565945124188925398==" MIME-Version: 1.0 From: Jan Kratochvil To: elfutils-devel@lists.fedorahosted.org Subject: Re: [PATCH] Add --core-pattern option to eu-stack Date: Thu, 27 Nov 2014 22:47:33 +0100 Message-ID: <20141127214733.GA30049@host2.jankratochvil.net> In-Reply-To: 1417087059.4954.43.camel@bordewijk.wildebeest.org --===============7565945124188925398== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Thu, 27 Nov 2014 12:17:39 +0100, Mark Wielaard wrote: > On Wed, 2014-11-26 at 15:44 +0100, Jan Kratochvil wrote: > > 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? > = > The close (0) is somewhat odd. I assume it signals the process is done > with handling the core file data and waitpid () never returns without > that? Yes. > But it does seem somewhat harmless. Are there any bad side effects from > closing stdin? We don't handle stdin at the moment. Although we could > maybe add --core=3D- to be explicit about the core data coming from stdin. I have discussed reading core file for --core-pattern in my other mail. > The waitpid () really is just waiting for PTRACE_EVENT_EXIT. So if you > wrap that in a while loop wouldn't it just work fine too in case the > user uses it with -p on a thread that they want to get the > backtrace of when it exits instead of in a core file pattern handler > pipe? Which way? #1 PTRACE_SEIZE waitpid() =3D lock-up on waitpid() #2 close(0); (in a process exec-ing eu-readelf) PTRACE_SEIZE =3D ESRCH; not tested but I find it obvious, the process has disappeared waitpid() =3D ECHILD; not tested but obviously there is no ptraced process I do not see where a while loop could be applied. Thanks, Jan --===============7565945124188925398==--