[PATCH 6/9] unwind: allow to specify unwinder back-end with -k option

Masatake YAMATO yamato at redhat.com
Tue Mar 20 18:50:06 UTC 2018


On Tue, 20 Mar 2018 21:39:43 +0300, "Dmitry V. Levin" <ldv at altlinux.org> wrote:
> On Wed, Mar 21, 2018 at 03:17:31AM +0900, Masatake YAMATO wrote:
>> On Tue, 20 Mar 2018 20:55:53 +0300, "Dmitry V. Levin" <ldv at altlinux.org> wrote:
>> > On Wed, Mar 14, 2018 at 02:28:11AM +0900, Masatake YAMATO wrote:
>> >> With this commit, -k option can take an optional argument
>> >> specifying unwinder like:
>> >> 
>> >>   $ strace -klibunwind ...
>> >> 
>> >> Here, "libunwind" is the name of unwinder. Currently only libunwind
>> >> is available as unwinder. Using libdw as unwinder is planed.
>> >> 
>> >> If no unwinder is given, strace choose one of available unwinders
>> >> linked in the build time.
>> > 
>> > Given that libdw already performs better than libunwind as unwinder, why
>> > would one want to build a strace executable that supports both unwinders
>> > simultaneously?
>> 
>> I myself don't have much strong reason supporting both.
>> 
>> However, I guess there are not a few people who want
>> not to link GPL'ed library to strace. (I myself like GPL.)
> 
> Assuming that libdw is distributed under "LGPLv3+ or GPLv2+" license,
> linking with libdw shouldn't raise any issues at all.

Yes. Just using the word "GPL'ed" is my bad.
I don't have any more comments about this.

>> If both unwinders are supported, we can know a bug by comparing
>> outputs. libdw looks better but having the way to compare the result
>> easily is not bad.
> 
> I'm afraid that if strace executable would support both unwinders
> simultaneously and their output will be different in most cases,
> it would be a source of confusion rather than a useful
> debugging mechanism.

I see.

>> Splitting frontend (unwind.c) and backends (unwind-libdw.c and
>> unwind-libunwind.c) makes us improving the frontend easier because
>> unwind.c is so small than before.
> 
> The split itself is fine.

Thank you. I'm happy to hear this.

Though I have not studied yet but /usr/include/libunwind-dynamic.h
looks interesting. I wonder I can do something interesting in strace
with it.

However, as far as the frontend and the backend are splited well,
reintroducing the libunwind based backend is quite easy.

So I have no reason to object removing libunwind support from
strace.

I'm still working on v2 patch set. I will put a patch removing
libunwind support at the end of the patch set if you ask me.

Masatake YAMATO
> 
> -- 
> ldv


More information about the Strace-devel mailing list