Re: How to build deb "dbg" packages?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the reply. Actually I made a mistake by claiming "dbg
packages in ubuntu don't have source code included". Here's a little
more information about making sure the binary and dbg package match:

$ file /usr/bin/ceph-osd
/usr/bin/ceph-osd: ELF 64-bit LSB shared object, x86-64, version 1
(GNU/Linux), dynamically linked, interpreter /lib64/l, for GNU/Linux
3.2.0, BuildID[sha1]=8a15177a5cb79533f396ef01e68ba1a2025f07a1,
stripped
$ ll /usr/lib/debug/.build-id/8a/15177a5cb79533f396ef01e68ba1a2025f07a1.debug
-rw-r--r-- 1 root root 195M Mar 26 17:27
/usr/lib/debug/.build-id/8a/15177a5cb79533f396ef01e68ba1a2025f07a1.debug

The binary has a "BuildID" field, and gdb would try to find the
corresponding debug file under /usr/lib/debug/.build-id
Hope it would help, and sorry for the disturbance.


Best,
Can Zhang

On Thu, Mar 26, 2020 at 3:43 PM Brad Hubbard <bhubbard@xxxxxxxxxx> wrote:
>
> The source for frames 0 to 2 are not part of ceph, they are part of
> glibc (libpthread).
>
> This is what I normally do.
>
> # apt-get install ceph-osd ceph-osd-dbg
> # mkdir build && cd $_
> # apt-get source ceph-osd
> # cd ..
> # gdb -d build/ /usr/bin/ceph-osd CoreDump
>
> Something like that should work for you too (at least for the actual
> ceph frames).
>
> On Thu, Mar 26, 2020 at 11:29 AM Can Zhang <can@xxxxxxx> wrote:
> >
> > Hello,
> >
> > I have a follow-up question. As the dbg packages in ubuntu, not like
> > rpm, don't have source code included, I also installed the source
> > package, and instruct gdb to find the directory with command
> > "directory /usr/src/ceph-14.2.7-75-g14b67dbc11", but it seems not
> > working:
> >
> > (gdb) directory /usr/src/ceph-14.2.7-75-g14b67dbc11/src
> > Source directories searched: /usr/src/ceph-14.2.7-75-g14b67dbc11/src:$cdir:$cwd
> > (gdb) bt
> > #0  0x00007f3aafa619f3 in futex_wait_cancelable (private=<optimized
> > out>, expected=0, futex_word=0x564f5aedf1d8) at
> > ../sysdeps/unix/sysv/linux/futex-internal.h:88
> > #1  __pthread_cond_wait_common (abstime=0x0, mutex=0x564f5aedf030,
> > cond=0x564f5aedf1b0) at pthread_cond_wait.c:502
> > #2  __pthread_cond_wait (cond=0x564f5aedf1b0, mutex=0x564f5aedf030) at
> > pthread_cond_wait.c:655
> > #3  0x0000564f4f3ff747 in AsyncMessenger::wait() ()
> > #4  0x0000564f4eb2119e in main ()
> >
> >
> > could you help me with debugging in ubuntu environment?
> >
> >
> >
> >
> > Best,
> > Can Zhang
> >
> > On Tue, Mar 17, 2020 at 4:42 PM Can Zhang <can@xxxxxxx> wrote:
> > >
> > > Thanks for the reply. After some tinkering, I understand that
> > > "make-debs.sh" intentionally remove *-dbg package building in normal
> > > situations, quote "...and remove -dbg packages because they are large
> > > and take time to build", so I comment out those lines:
> > > ====
> > > diff --git a/make-debs.sh b/make-debs.sh
> > > index 5a7ca1aff5..650940ccf2 100755
> > > --- a/make-debs.sh
> > > +++ b/make-debs.sh
> > > @@ -46,8 +46,8 @@ tar -C $releasedir -jxf $releasedir/ceph_$vers.orig.tar.bz2
> > >  #
> > >  cp -a debian $releasedir/ceph-$vers/debian
> > >  cd $releasedir
> > > -perl -ni -e 'print if(!(/^Package: .*-dbg$/../^$/))' ceph-$vers/debian/control
> > > -perl -pi -e 's/--dbg-package.*//' ceph-$vers/debian/rules
> > > +#perl -ni -e 'print if(!(/^Package: .*-dbg$/../^$/))' ceph-$vers/debian/control
> > > +#perl -pi -e 's/--dbg-package.*//' ceph-$vers/debian/rules
> > >  #
> > >  # always set the debian version to 1 which is ok because the debian
> > >  # directory is included in the sources and the upstream version will
> > > ====
> > > now the script could generate *-dbg*.deb files as expected.
> > >
> > >
> > >
> > > Best,
> > > Can Zhang
> > >
> > > On Tue, Mar 17, 2020 at 11:47 AM kefu chai <tchaikov@xxxxxxxxx> wrote:
> > > >
> > > > On Mon, Mar 16, 2020 at 4:13 PM Can Zhang <can@xxxxxxx> wrote:
> > > > >
> > > > > Hello,
> > > > >
> > > > > I use "make-debs.sh" script to build debian packages, but instead of
> > > > > getting *-dbg packages, I get packages like
> > > > > "ceph-base-dbgsym_14.2.7-75-g14b67dbc11-1_amd64.ddeb", which cannot be
> > > > > imported by reprepro, with errors like:
> > > > >
> > > > > Unknown file type: 'a2e592c703334bc9f55a62f6fac267d8 135503940 debug
> > > > > optional ceph-base-dbgsym_14.2.7-75-g14b67dbc11-1_amd64.ddeb',
> > > > > assuming source format...
> > > > > Warning: File 'ceph-base-dbgsym_14.2.7-75-g14b67dbc11-1_amd64.ddeb'
> > > > > looks like source but does not start with 'ceph_'!
> > > >
> > > > that's a known issue. see
> > > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730572 .
> > > >
> > > > >
> > > > > I must have missed something about the package building procedure.
> > > > > What supposed to be the right way to build deb packages?
> > > > >
> > > >
> > > > please read https://wiki.debian.org/AutomaticDebugPackages for more
> > > > info regarding to ddeb.
> > > >
> > > > i'd suggest search for answers first before shooting the question
> > > > right to the maling list .
> > > >
> > > > >
> > > > >
> > > > > Best,
> > > > > Can Zhang
> > > > > _______________________________________________
> > > > > Dev mailing list -- dev@xxxxxxx
> > > > > To unsubscribe send an email to dev-leave@xxxxxxx
> > > >
> > > >
> > > >
> > > > --
> > > > Regards
> > > > Kefu Chai
> > _______________________________________________
> > Dev mailing list -- dev@xxxxxxx
> > To unsubscribe send an email to dev-leave@xxxxxxx
> >
>
>
> --
> Cheers,
> Brad
>
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux