This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Re: [patch] Use executable_for_core in dwfl_build_id_find_elf
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Wed, 18 Dec 2013 14:43:18 +0100
- Subject: Re: [patch] Use executable_for_core in dwfl_build_id_find_elf
On Tue, 2013-12-17 at 21:32 +0100, Jan Kratochvil wrote:
> I believe if executable_for_core is set it means the Dwfl is really for a core
> file and the executable has been explicitly set by the user. Therefore it
> should override/precede any searches.
Agreed.
> I was experimenting also with replacing [exe]/[pie] by executable_for_core but
> I do not see any end-user visible benefit from it and it is also an unrelated
> patch.
Yeah.
> OK for check-in?
Yes, with one small nitpick about the moved comment.
> libdwfl/
> 2013-12-17 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * argp-std.c (offline_find_elf): Remove.
> (offline_callbacks): Use dwfl_build_id_find_elf instead.
> * dwfl_build_id_find_elf.c (dwfl_build_id_find_elf): Move here the code
> removed above.
> [...]
> > static const Dwfl_Callbacks proc_callbacks =
> > diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c
> > index 9272c1f..86e97d0 100644
> > --- a/libdwfl/dwfl_build_id_find_elf.c
> > +++ b/libdwfl/dwfl_build_id_find_elf.c
> > @@ -116,6 +116,23 @@ dwfl_build_id_find_elf (Dwfl_Module *mod,
> > char **file_name, Elf **elfp)
> > {
> > *elfp = NULL;
> > + if (modname != NULL && mod->dwfl->executable_for_core != NULL
> > + && (strcmp (modname, "[exe]") == 0 || strcmp (modname, "[pie]") == 0))
> > + {
> > + /* When both --core and --executable are given dwfl_core_file_report is
> > + called first and this callback will replace the Dwfl_Module main.name
> > + with the recorded --executable file when the modname is [exe] or [pie]
> > + (which then triggers opening and reporting of the executable). */
This should now mention "When dwfl_core_file_report was called with a
non-NULL executable file name..." instead of the argp argument switches.
Thanks,
Mark