maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #07560
Re: Why does name resolution stop in crash stack trace?
Hi, Sergey!
On Jul 18, Sergey Petrunia wrote:
> Hi,
>
> Look at today's crash report in maria-discuss@. A question not related
> to the cause of that crash: why do stack traces that go inside the
> storage engine cannot be resolved? Is something wrong with our build
> process?
We resolve stack traces using addr2line utility (see
mysys/my_addr_resolve.c). It takes the name of the executable as an
argument. Dynamic plugins are not part of the executable - so they
aren't resolved.
There are other approaches to resolving a stack trace, they would
resolve traces inside plugins, but they have drawbacks too:
* libbfd (it's used by addr2line internally) - it's GPLv3
* backtrace_symbols() - doesn't show filenames and line numbers
* libelf - extra dependency and not as ubiquitous as libbfd
One can build mariadb with libbfd by specifying -DNOT_FOR_DISTRIBUTION=1
but the resulting binary cannot be legally distributed.
libelf support is not currently implemented, but it should only take a
couple of hours to add it.
backtrace_symbols() - that's what MySQL is using.
Regards,
Sergei
References