Fwd: user space probe in ubuntu 14.04

Colin Watson cjwatson at ubuntu.com
Tue Sep 15 17:24:22 UTC 2015


On Tue, Sep 15, 2015 at 10:52:57PM +0800, Gareth wrote:
> I'm systemtap users on ubuntu. Here is an issue about mysql dbgsym
> package. Below are some details
> 
> ps:
> 
> http://paste.openstack.org/show/462299/ some bash history
> http://paste.openstack.org/show/462471/ the packages I have installed
> 
> ---------- Forwarded message ----------
> From: Frank Ch. Eigler <fche at redhat.com>
> Date: Tue, Sep 15, 2015 at 10:35 PM
> Subject: Re: user space probe in ubuntu 14.04
> To: Gareth <academicgareth at gmail.com>
> Cc: David Smith <dsmith at redhat.com>, systemtap at sourceware.org
[...]
> These ubuntu 14 builds of mysql did not include the sys/sdt.h markers
> necessary for use of the .mark() probes.  "readelf -n /usr/sbin/mysqld"
> fails to show any NT_STAPSDT notes.

(Please note that "Ubuntu 14" isn't a thing; it's 14.04, and the 14 is a
truncated year not a major version.  Otherwise, this is outside my
expertise.)

> If you installed mysql-{client,server}-5.5-dbgsym, you should be
> able to use .function() etc. probes ... but something's broken in the
> ubuntu build system:
> 
> % dpkg -l 'mysql-server-5.5*'
> ii  mysql-server-5.5                           5.5.44-0ubuntu0.14.04.1
>    amd64                      MySQL database server binaries and
> system database setup
> ii  mysql-server-5.5-dbgsym                    5.5.44-0ubuntu0.14.04.1
>    amd64                      debug symbols for package
> mysql-server-5.5
> 
> % stap -L 'process("/usr/sbin/mysqld").function("*")'
> [empty!]
> 
> % readelf -n /usr/sbin/mysqld
> [...]
>     Build ID: 7c5b991d6ba0d7722a41f9a39e2915f6a354a1c7
> 
> % dpkg -L mysql-server-5.5-dbgsym | grep 5b99
> [empty!]
> 
> So the dbgsym package doesn't contain debuginfo for that actual build,
> despite the identical version numbers.  Please raise this problem with
> ubuntu.

This is a mistaken analysis.  /usr/sbin/mysqld is in
mysql-server-core-5.5, not mysql-server-5.5, and therefore its debugging
symbols are in mysql-server-core-5.5-dbgsym:

  $ dpkg -c mysql-server-core-5.5-dbgsym_5.5.44-0ubuntu0.14.04.1_amd64.ddeb | grep 5b99
  -rwxrwxr-x root/root  48818397 2015-07-16 23:50 ./usr/lib/debug/.build-id/7c/5b991d6ba0d7722a41f9a39e2915f6a354a1c7.debug

(The debugging packages are automatically generated and their
dependencies do not necessarily correspond to those of the runtime
packages, so you can't just go "oh, I installed mysql-server-5.5 and got
mysqld, mysql-server-5.5-dbgsym must be good enough", you have to check
the actual package name with "dpkg -S".)

The information that Gareth provided indicated that they already had
mysql-server-core-5.5-dbgsym installed, so perhaps this problem is
entirely explained by the NT_STAPSDT bit above.

-- 
Colin Watson                                       [cjwatson at ubuntu.com]




More information about the Ubuntu-devel-discuss mailing list