* Debugging shared libraries @ 2016-02-10 7:31 Gary Thomas 2016-02-10 16:35 ` Mark Hatle 0 siblings, 1 reply; 8+ messages in thread From: Gary Thomas @ 2016-02-10 7:31 UTC (permalink / raw) To: yocto I'm trying to debug some code (mplayer) which uses some shared libraries from ffmpeg. When I use GDB (via gdbserver), I don't get all the debug information I need - note that many of the shared libraries do not have any symbolic debugging info: (gdb) info sharedlibrary From To Syms Read Shared Object Library 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 (*): Shared library is missing debugging information. Is this a function of how those libraries were built (by the recipe) or something else? How can I get the symbolic debugging info enabled? Thanks for any pointers -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Debugging shared libraries 2016-02-10 7:31 Debugging shared libraries Gary Thomas @ 2016-02-10 16:35 ` Mark Hatle 2016-02-10 20:08 ` Khem Raj 0 siblings, 1 reply; 8+ messages in thread From: Mark Hatle @ 2016-02-10 16:35 UTC (permalink / raw) To: Gary Thomas, yocto On 2/10/16 1:31 AM, Gary Thomas wrote: > I'm trying to debug some code (mplayer) which uses some shared > libraries from ffmpeg. When I use GDB (via gdbserver), I don't > get all the debug information I need - note that many of the shared > libraries do not have any symbolic debugging info: Is your system using the the split debug binaries, and if so, do you have them all installed on the system that GDB is running on? (When GDB starts, you should see it load the symbols, or error it can't find them.) Assuming you DO have the symbol files available, and some things are lacking debuginfo, it's possible those recipes are not properly building with full symbols (they should be, the whole system should be.) Easiest way to check is do a readelf/objdump on the .debug version of the library and check that there are dwarf symbols present... if not, it's probably a recipe error. --Mark > (gdb) info sharedlibrary > From To Syms Read Shared Object Library > 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 > 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 > 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 > 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 > 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 > 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 > 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 > 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 > 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 > 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 > 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 > 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 > 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 > 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 > 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 > 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 > 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 > 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 > 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 > 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 > 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 > 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 > 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 > 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 > 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 > 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 > 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 > 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 > 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 > 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 > 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 > 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 > 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 > 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 > 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 > 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 > 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 > 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 > 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 > 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 > 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 > 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 > 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 > (*): Shared library is missing debugging information. > > Is this a function of how those libraries were built (by the recipe) > or something else? How can I get the symbolic debugging info enabled? > > Thanks for any pointers > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Debugging shared libraries 2016-02-10 16:35 ` Mark Hatle @ 2016-02-10 20:08 ` Khem Raj 2016-02-11 3:41 ` Gary Thomas 0 siblings, 1 reply; 8+ messages in thread From: Khem Raj @ 2016-02-10 20:08 UTC (permalink / raw) To: Mark Hatle; +Cc: yocto, Gary Thomas [-- Attachment #1: Type: text/plain, Size: 5142 bytes --] > On Feb 10, 2016, at 8:35 AM, Mark Hatle <mark.hatle@windriver.com> wrote: > > On 2/10/16 1:31 AM, Gary Thomas wrote: >> I'm trying to debug some code (mplayer) which uses some shared >> libraries from ffmpeg. When I use GDB (via gdbserver), I don't >> get all the debug information I need - note that many of the shared >> libraries do not have any symbolic debugging info: > > Is your system using the the split debug binaries, and if so, do you have them > all installed on the system that GDB is running on? > > (When GDB starts, you should see it load the symbols, or error it can't find them.) > > Assuming you DO have the symbol files available, and some things are lacking > debuginfo, it's possible those recipes are not properly building with full > symbols (they should be, the whole system should be.) > > Easiest way to check is do a readelf/objdump on the .debug version of the > library and check that there are dwarf symbols present... if not, it's probably > a recipe error. > > --Mark > >> (gdb) info sharedlibrary >> From To Syms Read Shared Object Library >> 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 >> 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 >> 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 >> 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 >> 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 >> 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 >> 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 >> 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 >> 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 >> 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 >> 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 >> 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 >> 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 >> 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 >> 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 >> 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 >> 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 >> 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 >> 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 >> 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 >> 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 >> 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 >> 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 >> 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 >> 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 >> 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 >> 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 >> 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 >> 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 >> 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 >> 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 >> 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 >> 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 >> 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 >> 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 >> 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 >> 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 >> 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 >> 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 >> 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 >> 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 >> 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 >> 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 >> (*): Shared library is missing debugging information. >> >> Is this a function of how those libraries were built (by the recipe) >> or something else? How can I get the symbolic debugging info enabled? >> >> Thanks for any pointers Usually it works well if you add EXTRA_IMAGE_FEATURES_append = “ dbg-pkgs” image size grows but you get good debug view on target. another option, I usually use is setup feeds and then opkg install <package>-dbg which pulls in a section of debug info needed to debug a given package. >> > > -- > _______________________________________________ > yocto mailing list > yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto [-- Attachment #2: Message signed with OpenPGP using GPGMail --] [-- Type: application/pgp-signature, Size: 211 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Debugging shared libraries 2016-02-10 20:08 ` Khem Raj @ 2016-02-11 3:41 ` Gary Thomas 2016-02-11 21:48 ` Mark Hatle 0 siblings, 1 reply; 8+ messages in thread From: Gary Thomas @ 2016-02-11 3:41 UTC (permalink / raw) To: Khem Raj, Mark Hatle; +Cc: yocto On 2016-02-10 21:08, Khem Raj wrote: > >> On Feb 10, 2016, at 8:35 AM, Mark Hatle <mark.hatle@windriver.com> wrote: >> >> On 2/10/16 1:31 AM, Gary Thomas wrote: >>> I'm trying to debug some code (mplayer) which uses some shared >>> libraries from ffmpeg. When I use GDB (via gdbserver), I don't >>> get all the debug information I need - note that many of the shared >>> libraries do not have any symbolic debugging info: >> >> Is your system using the the split debug binaries, and if so, do you have them >> all installed on the system that GDB is running on? >> >> (When GDB starts, you should see it load the symbols, or error it can't find them.) >> >> Assuming you DO have the symbol files available, and some things are lacking >> debuginfo, it's possible those recipes are not properly building with full >> symbols (they should be, the whole system should be.) >> >> Easiest way to check is do a readelf/objdump on the .debug version of the >> library and check that there are dwarf symbols present... if not, it's probably >> a recipe error. >> >> --Mark >> >>> (gdb) info sharedlibrary >>> From To Syms Read Shared Object Library >>> 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 >>> 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 >>> 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 >>> 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 >>> 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 >>> 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 >>> 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 >>> 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 >>> 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 >>> 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 >>> 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 >>> 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 >>> 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 >>> 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 >>> 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 >>> 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 >>> 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 >>> 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 >>> 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 >>> 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 >>> 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 >>> 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 >>> 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 >>> 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 >>> 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 >>> 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 >>> 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 >>> 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 >>> 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 >>> 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 >>> 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 >>> 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 >>> 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 >>> 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 >>> 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 >>> 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 >>> 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 >>> 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 >>> 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 >>> 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 >>> 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 >>> 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 >>> 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 >>> (*): Shared library is missing debugging information. >>> >>> Is this a function of how those libraries were built (by the recipe) >>> or something else? How can I get the symbolic debugging info enabled? >>> >>> Thanks for any pointers > > > Usually it works well if you add > > EXTRA_IMAGE_FEATURES_append = “ dbg-pkgs” > > image size grows but you get good debug view on target. > > another option, I usually use is setup feeds > and then > > opkg install <package>-dbg > > which pulls in a section of debug info needed to debug a given package. > I've done all this already. The problem is that for the libraries which have no symbols there are no corresponding -dbg packages :-( I looked at the ffmpeg recipe (where the libswresample library I'm most interested in comes from) and there is serious magic involved in the packaging. I'm pretty sure that's where the discrepancy lies... Any help understanding how to fix that would be appreciated. -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Debugging shared libraries 2016-02-11 3:41 ` Gary Thomas @ 2016-02-11 21:48 ` Mark Hatle 2016-02-12 3:11 ` Gary Thomas 0 siblings, 1 reply; 8+ messages in thread From: Mark Hatle @ 2016-02-11 21:48 UTC (permalink / raw) To: Gary Thomas, Khem Raj; +Cc: yocto On 2/10/16 9:41 PM, Gary Thomas wrote: > On 2016-02-10 21:08, Khem Raj wrote: >> >>> On Feb 10, 2016, at 8:35 AM, Mark Hatle <mark.hatle@windriver.com> wrote: >>> >>> On 2/10/16 1:31 AM, Gary Thomas wrote: >>>> I'm trying to debug some code (mplayer) which uses some shared >>>> libraries from ffmpeg. When I use GDB (via gdbserver), I don't >>>> get all the debug information I need - note that many of the shared >>>> libraries do not have any symbolic debugging info: >>> >>> Is your system using the the split debug binaries, and if so, do you have them >>> all installed on the system that GDB is running on? >>> >>> (When GDB starts, you should see it load the symbols, or error it can't find them.) >>> >>> Assuming you DO have the symbol files available, and some things are lacking >>> debuginfo, it's possible those recipes are not properly building with full >>> symbols (they should be, the whole system should be.) >>> >>> Easiest way to check is do a readelf/objdump on the .debug version of the >>> library and check that there are dwarf symbols present... if not, it's probably >>> a recipe error. >>> >>> --Mark >>> >>>> (gdb) info sharedlibrary >>>> From To Syms Read Shared Object Library >>>> 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 >>>> 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 >>>> 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 >>>> 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 >>>> 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 >>>> 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 >>>> 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 >>>> 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 >>>> 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 >>>> 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 >>>> 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 >>>> 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 >>>> 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 >>>> 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 >>>> 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 >>>> 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 >>>> 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 >>>> 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 >>>> 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 >>>> 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 >>>> 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 >>>> 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 >>>> 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 >>>> 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 >>>> 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 >>>> 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 >>>> 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 >>>> 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 >>>> 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 >>>> 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 >>>> 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 >>>> 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 >>>> 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 >>>> 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 >>>> 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 >>>> 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 >>>> 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 >>>> 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 >>>> 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 >>>> 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 >>>> 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 >>>> 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 >>>> 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 >>>> (*): Shared library is missing debugging information. >>>> >>>> Is this a function of how those libraries were built (by the recipe) >>>> or something else? How can I get the symbolic debugging info enabled? >>>> >>>> Thanks for any pointers >> >> >> Usually it works well if you add >> >> EXTRA_IMAGE_FEATURES_append = “ dbg-pkgs” >> >> image size grows but you get good debug view on target. >> >> another option, I usually use is setup feeds >> and then >> >> opkg install <package>-dbg >> >> which pulls in a section of debug info needed to debug a given package. >> > > I've done all this already. The problem is that for the libraries which > have no symbols there are no corresponding -dbg packages :-( I looked > at the ffmpeg recipe (where the libswresample library I'm most interested > in comes from) and there is serious magic involved in the packaging. I'm > pretty sure that's where the discrepancy lies... Any help understanding > how to fix that would be appreciated. If the package is being built from source, I'd expect -dbg to be generated.. if it's not, we definitely should investigate. The intention has always been to generate -dbg for the core pieces.. External layers can disable it if they're packaging binaries or commercial, but that is different. --Mark > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Debugging shared libraries 2016-02-11 21:48 ` Mark Hatle @ 2016-02-12 3:11 ` Gary Thomas 2016-02-12 3:18 ` Khem Raj 0 siblings, 1 reply; 8+ messages in thread From: Gary Thomas @ 2016-02-12 3:11 UTC (permalink / raw) To: Mark Hatle, Khem Raj; +Cc: yocto On 2016-02-11 22:48, Mark Hatle wrote: > On 2/10/16 9:41 PM, Gary Thomas wrote: >> On 2016-02-10 21:08, Khem Raj wrote: >>> >>>> On Feb 10, 2016, at 8:35 AM, Mark Hatle <mark.hatle@windriver.com> wrote: >>>> >>>> On 2/10/16 1:31 AM, Gary Thomas wrote: >>>>> I'm trying to debug some code (mplayer) which uses some shared >>>>> libraries from ffmpeg. When I use GDB (via gdbserver), I don't >>>>> get all the debug information I need - note that many of the shared >>>>> libraries do not have any symbolic debugging info: >>>> >>>> Is your system using the the split debug binaries, and if so, do you have them >>>> all installed on the system that GDB is running on? >>>> >>>> (When GDB starts, you should see it load the symbols, or error it can't find them.) >>>> >>>> Assuming you DO have the symbol files available, and some things are lacking >>>> debuginfo, it's possible those recipes are not properly building with full >>>> symbols (they should be, the whole system should be.) >>>> >>>> Easiest way to check is do a readelf/objdump on the .debug version of the >>>> library and check that there are dwarf symbols present... if not, it's probably >>>> a recipe error. >>>> >>>> --Mark >>>> >>>>> (gdb) info sharedlibrary >>>>> From To Syms Read Shared Object Library >>>>> 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 >>>>> 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 >>>>> 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 >>>>> 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 >>>>> 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 >>>>> 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 >>>>> 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 >>>>> 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 >>>>> 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 >>>>> 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 >>>>> 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 >>>>> 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 >>>>> 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 >>>>> 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 >>>>> 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 >>>>> 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 >>>>> 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 >>>>> 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 >>>>> 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 >>>>> 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 >>>>> 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 >>>>> 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 >>>>> 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 >>>>> 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 >>>>> 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 >>>>> 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 >>>>> 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 >>>>> 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 >>>>> 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 >>>>> 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 >>>>> 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 >>>>> 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 >>>>> 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 >>>>> 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 >>>>> 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 >>>>> 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 >>>>> 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 >>>>> 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 >>>>> 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 >>>>> 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 >>>>> 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 >>>>> 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 >>>>> 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 >>>>> (*): Shared library is missing debugging information. >>>>> >>>>> Is this a function of how those libraries were built (by the recipe) >>>>> or something else? How can I get the symbolic debugging info enabled? >>>>> >>>>> Thanks for any pointers >>> >>> >>> Usually it works well if you add >>> >>> EXTRA_IMAGE_FEATURES_append = “ dbg-pkgs” >>> >>> image size grows but you get good debug view on target. >>> >>> another option, I usually use is setup feeds >>> and then >>> >>> opkg install <package>-dbg >>> >>> which pulls in a section of debug info needed to debug a given package. >>> >> >> I've done all this already. The problem is that for the libraries which >> have no symbols there are no corresponding -dbg packages :-( I looked >> at the ffmpeg recipe (where the libswresample library I'm most interested >> in comes from) and there is serious magic involved in the packaging. I'm >> pretty sure that's where the discrepancy lies... Any help understanding >> how to fix that would be appreciated. > > If the package is being built from source, I'd expect -dbg to be generated.. if > it's not, we definitely should investigate. Definitely standard (OE-core) package, being built from sources. No -dbg for the libraries in question. > > The intention has always been to generate -dbg for the core pieces.. External > layers can disable it if they're packaging binaries or commercial, but that is > different. https://bugzilla.yoctoproject.org/show_bug.cgi?id=9104 As obvious from the list above, there are other packages with libraries that have no -dbg as well. This bug was filed against ffmpeg only, perhaps it should be more generic... -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Debugging shared libraries 2016-02-12 3:11 ` Gary Thomas @ 2016-02-12 3:18 ` Khem Raj 2016-02-12 3:49 ` Gary Thomas 0 siblings, 1 reply; 8+ messages in thread From: Khem Raj @ 2016-02-12 3:18 UTC (permalink / raw) To: Gary Thomas; +Cc: yocto [-- Attachment #1: Type: text/plain, Size: 7035 bytes --] > On Feb 11, 2016, at 7:11 PM, Gary Thomas <gary@mlbassoc.com> wrote: > > On 2016-02-11 22:48, Mark Hatle wrote: >> On 2/10/16 9:41 PM, Gary Thomas wrote: >>> On 2016-02-10 21:08, Khem Raj wrote: >>>> >>>>> On Feb 10, 2016, at 8:35 AM, Mark Hatle <mark.hatle@windriver.com> wrote: >>>>> >>>>> On 2/10/16 1:31 AM, Gary Thomas wrote: >>>>>> I'm trying to debug some code (mplayer) which uses some shared >>>>>> libraries from ffmpeg. When I use GDB (via gdbserver), I don't >>>>>> get all the debug information I need - note that many of the shared >>>>>> libraries do not have any symbolic debugging info: >>>>> >>>>> Is your system using the the split debug binaries, and if so, do you have them >>>>> all installed on the system that GDB is running on? >>>>> >>>>> (When GDB starts, you should see it load the symbols, or error it can't find them.) >>>>> >>>>> Assuming you DO have the symbol files available, and some things are lacking >>>>> debuginfo, it's possible those recipes are not properly building with full >>>>> symbols (they should be, the whole system should be.) >>>>> >>>>> Easiest way to check is do a readelf/objdump on the .debug version of the >>>>> library and check that there are dwarf symbols present... if not, it's probably >>>>> a recipe error. >>>>> >>>>> --Mark >>>>> >>>>>> (gdb) info sharedlibrary >>>>>> From To Syms Read Shared Object Library >>>>>> 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 >>>>>> 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 >>>>>> 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 >>>>>> 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 >>>>>> 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 >>>>>> 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 >>>>>> 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 >>>>>> 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 >>>>>> 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 >>>>>> 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 >>>>>> 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 >>>>>> 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 >>>>>> 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 >>>>>> 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 >>>>>> 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 >>>>>> 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 >>>>>> 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 >>>>>> 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 >>>>>> 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 >>>>>> 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 >>>>>> 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 >>>>>> 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 >>>>>> 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 >>>>>> 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 >>>>>> 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 >>>>>> 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 >>>>>> 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 >>>>>> 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 >>>>>> 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 >>>>>> 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 >>>>>> 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 >>>>>> 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 >>>>>> 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 >>>>>> 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 >>>>>> 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 >>>>>> 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 >>>>>> 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 >>>>>> 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 >>>>>> 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 >>>>>> 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 >>>>>> 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 >>>>>> 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 >>>>>> 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 >>>>>> (*): Shared library is missing debugging information. >>>>>> >>>>>> Is this a function of how those libraries were built (by the recipe) >>>>>> or something else? How can I get the symbolic debugging info enabled? >>>>>> >>>>>> Thanks for any pointers >>>> >>>> >>>> Usually it works well if you add >>>> >>>> EXTRA_IMAGE_FEATURES_append = “ dbg-pkgs” >>>> >>>> image size grows but you get good debug view on target. >>>> >>>> another option, I usually use is setup feeds >>>> and then >>>> >>>> opkg install <package>-dbg >>>> >>>> which pulls in a section of debug info needed to debug a given package. >>>> >>> >>> I've done all this already. The problem is that for the libraries which >>> have no symbols there are no corresponding -dbg packages :-( I looked >>> at the ffmpeg recipe (where the libswresample library I'm most interested >>> in comes from) and there is serious magic involved in the packaging. I'm >>> pretty sure that's where the discrepancy lies... Any help understanding >>> how to fix that would be appreciated. >> >> If the package is being built from source, I'd expect -dbg to be generated.. if >> it's not, we definitely should investigate. > > Definitely standard (OE-core) package, being built from sources. No -dbg for > the libraries in question. > >> >> The intention has always been to generate -dbg for the core pieces.. External >> layers can disable it if they're packaging binaries or commercial, but that is >> different. > > https://bugzilla.yoctoproject.org/show_bug.cgi?id=9104 > > As obvious from the list above, there are other packages with libraries that > have no -dbg as well. This bug was filed against ffmpeg only, perhaps it should > be more generic… Can you check if the makery of this package is not respecting the CFLAGS passed from OE env ? > > -- > ------------------------------------------------------------ > Gary Thomas | Consulting for the > MLB Associates | Embedded world > ------------------------------------------------------------ [-- Attachment #2: Message signed with OpenPGP using GPGMail --] [-- Type: application/pgp-signature, Size: 211 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Debugging shared libraries 2016-02-12 3:18 ` Khem Raj @ 2016-02-12 3:49 ` Gary Thomas 0 siblings, 0 replies; 8+ messages in thread From: Gary Thomas @ 2016-02-12 3:49 UTC (permalink / raw) To: Khem Raj; +Cc: yocto On 2016-02-12 04:18, Khem Raj wrote: > >> On Feb 11, 2016, at 7:11 PM, Gary Thomas <gary@mlbassoc.com> wrote: >> >> On 2016-02-11 22:48, Mark Hatle wrote: >>> On 2/10/16 9:41 PM, Gary Thomas wrote: >>>> On 2016-02-10 21:08, Khem Raj wrote: >>>>> >>>>>> On Feb 10, 2016, at 8:35 AM, Mark Hatle <mark.hatle@windriver.com> wrote: >>>>>> >>>>>> On 2/10/16 1:31 AM, Gary Thomas wrote: >>>>>>> I'm trying to debug some code (mplayer) which uses some shared >>>>>>> libraries from ffmpeg. When I use GDB (via gdbserver), I don't >>>>>>> get all the debug information I need - note that many of the shared >>>>>>> libraries do not have any symbolic debugging info: >>>>>> >>>>>> Is your system using the the split debug binaries, and if so, do you have them >>>>>> all installed on the system that GDB is running on? >>>>>> >>>>>> (When GDB starts, you should see it load the symbols, or error it can't find them.) >>>>>> >>>>>> Assuming you DO have the symbol files available, and some things are lacking >>>>>> debuginfo, it's possible those recipes are not properly building with full >>>>>> symbols (they should be, the whole system should be.) >>>>>> >>>>>> Easiest way to check is do a readelf/objdump on the .debug version of the >>>>>> library and check that there are dwarf symbols present... if not, it's probably >>>>>> a recipe error. >>>>>> >>>>>> --Mark >>>>>> >>>>>>> (gdb) info sharedlibrary >>>>>>> From To Syms Read Shared Object Library >>>>>>> 0xb6fcf800 0xb6feaf08 Yes /tmp/p0382.img/lib/ld-linux-armhf.so.3 >>>>>>> 0xb6fa6fa8 0xb6fb2b40 Yes (*) /tmp/p0382.img/lib/libtinfo.so.5 >>>>>>> 0xb6f6d210 0xb6f8c200 Yes /tmp/p0382.img/usr/lib/libpng16.so.16 >>>>>>> 0xb6f488e8 0xb6f54a60 Yes /tmp/p0382.img/lib/libz.so.1 >>>>>>> 0xb6f069f0 0xb6f34264 Yes /tmp/p0382.img/usr/lib/libjpeg.so.8 >>>>>>> 0xb6edbaf0 0xb6eee29c Yes /tmp/p0382.img/usr/lib/libdvdread.so.4 >>>>>>> 0xb6eb6108 0xb6ec7ae8 Yes /tmp/p0382.img/usr/lib/libass.so.4 >>>>>>> 0xb6e808b8 0xb6e95384 Yes /tmp/p0382.img/usr/lib/libvorbis.so.0 >>>>>>> 0xb6e6b4b4 0xb6e6d7e4 Yes /tmp/p0382.img/usr/lib/libogg.so.0 >>>>>>> 0xb6e48978 0xb6e55eb4 Yes /tmp/p0382.img/usr/lib/libspeex.so.1 >>>>>>> 0xb6dfe818 0xb6e1b8b4 Yes (*) /tmp/p0382.img/usr/lib/libfaad.so.2 >>>>>>> 0xb6d92df0 0xb6dd4e78 Yes (*) /tmp/p0382.img/usr/lib/libavutil.so.54 >>>>>>> 0xb5de0640 0xb64a2e18 Yes (*) /tmp/p0382.img/usr/lib/libavcodec.so.56 >>>>>>> 0xb5c17528 0xb5d65840 Yes (*) /tmp/p0382.img/usr/lib/libavformat.so.56 >>>>>>> 0xb5b81688 0xb5be8db8 Yes (*) /tmp/p0382.img/usr/lib/libswscale.so.3 >>>>>>> 0xb5b5f578 0xb5b6c718 Yes (*) /tmp/p0382.img/usr/lib/libswresample.so.1 >>>>>>> 0xb5b44998 0xb5b4b490 Yes (*) /tmp/p0382.img/usr/lib/libpostproc.so.53 >>>>>>> 0xb5b1f0e0 0xb5b2e194 Yes /tmp/p0382.img/lib/libpthread.so.0 >>>>>>> 0xb5aa4c00 0xb5ad46d0 Yes /tmp/p0382.img/lib/libm.so.6 >>>>>>> 0xb5a859ec 0xb5a8fc34 Yes /tmp/p0382.img/usr/lib/libXext.so.6 >>>>>>> 0xb597b728 0xb59f92bc Yes /tmp/p0382.img/usr/lib/libX11.so.6 >>>>>>> 0xb5946fc8 0xb59573d0 Yes /tmp/p0382.img/usr/lib/libtheoradec.so.1 >>>>>>> 0xb5887910 0xb591bbb8 Yes (*) /tmp/p0382.img/usr/lib/libasound.so.2 >>>>>>> 0xb58579f8 0xb58586ac Yes /tmp/p0382.img/usr/lib/libXss.so.1 >>>>>>> 0xb5844ca0 0xb5846bac Yes /tmp/p0382.img/usr/lib/libXv.so.1 >>>>>>> 0xb57e7700 0xb58265e0 Yes /tmp/p0382.img/usr/lib/libSDL-1.2.so.0 >>>>>>> 0xb56bae00 0xb57abb28 Yes /tmp/p0382.img/lib/libc.so.6 >>>>>>> 0xb569292c 0xb5693724 Yes /tmp/p0382.img/lib/libdl.so.2 >>>>>>> 0xb5650a70 0xb566e6a4 Yes /tmp/p0382.img/usr/lib/libfontconfig.so.1 >>>>>>> 0xb561e324 0xb563951c Yes /tmp/p0382.img/usr/lib/libexpat.so.1 >>>>>>> 0xb559d36c 0xb55f5cb4 Yes /tmp/p0382.img/usr/lib/libfreetype.so.6 >>>>>>> 0xb55622b0 0xb5567e84 Yes /tmp/p0382.img/usr/lib/libenca.so.0 >>>>>>> 0xb541fbc0 0xb54b5a08 Yes (*) /tmp/p0382.img/usr/lib/libx264.so.144 >>>>>>> 0xb53d4df0 0xb53fa0b0 Yes /tmp/p0382.img/usr/lib/libtheoraenc.so.1 >>>>>>> 0xb53a72b0 0xb53bd258 Yes (*) /tmp/p0382.img/usr/lib/liblzma.so.5 >>>>>>> 0xb5386050 0xb5392cc0 Yes (*) /tmp/p0382.img/usr/lib/libbz2.so.0 >>>>>>> 0xb5367810 0xb5373b30 Yes /tmp/p0382.img/usr/lib/libxcb.so.1 >>>>>>> 0xb534da00 0xb534e5a8 Yes /tmp/p0382.img/usr/lib/libXau.so.6 >>>>>>> 0xb5339f80 0xb533b69c Yes /tmp/p0382.img/usr/lib/libXdmcp.so.6 >>>>>>> 0xb5323720 0xb5326ea0 Yes /tmp/p0382.img/lib/librt.so.1 >>>>>>> 0xb530b6e0 0xb5311234 Yes /tmp/p0382.img/usr/lib/libXrandr.so.2 >>>>>>> 0xb52f3530 0xb52f9060 Yes /tmp/p0382.img/usr/lib/libXrender.so.1 >>>>>>> 0xb52d3160 0xb52e18a4 Yes /tmp/p0382.img/lib/libgcc_s.so.1 >>>>>>> (*): Shared library is missing debugging information. >>>>>>> >>>>>>> Is this a function of how those libraries were built (by the recipe) >>>>>>> or something else? How can I get the symbolic debugging info enabled? >>>>>>> >>>>>>> Thanks for any pointers >>>>> >>>>> >>>>> Usually it works well if you add >>>>> >>>>> EXTRA_IMAGE_FEATURES_append = “ dbg-pkgs” >>>>> >>>>> image size grows but you get good debug view on target. >>>>> >>>>> another option, I usually use is setup feeds >>>>> and then >>>>> >>>>> opkg install <package>-dbg >>>>> >>>>> which pulls in a section of debug info needed to debug a given package. >>>>> >>>> >>>> I've done all this already. The problem is that for the libraries which >>>> have no symbols there are no corresponding -dbg packages :-( I looked >>>> at the ffmpeg recipe (where the libswresample library I'm most interested >>>> in comes from) and there is serious magic involved in the packaging. I'm >>>> pretty sure that's where the discrepancy lies... Any help understanding >>>> how to fix that would be appreciated. >>> >>> If the package is being built from source, I'd expect -dbg to be generated.. if >>> it's not, we definitely should investigate. >> >> Definitely standard (OE-core) package, being built from sources. No -dbg for >> the libraries in question. >> >>> >>> The intention has always been to generate -dbg for the core pieces.. External >>> layers can disable it if they're packaging binaries or commercial, but that is >>> different. >> >> https://bugzilla.yoctoproject.org/show_bug.cgi?id=9104 >> >> As obvious from the list above, there are other packages with libraries that >> have no -dbg as well. This bug was filed against ffmpeg only, perhaps it should >> be more generic… > > > Can you check if the makery of this package is not respecting the CFLAGS passed from > OE env ? I gave the recipe a quick look and found the missing steps to build the -dbg packages. I can now debug those libraries :-) I'll send a patch to OE-core to fix this. -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-02-12 3:49 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-02-10 7:31 Debugging shared libraries Gary Thomas 2016-02-10 16:35 ` Mark Hatle 2016-02-10 20:08 ` Khem Raj 2016-02-11 3:41 ` Gary Thomas 2016-02-11 21:48 ` Mark Hatle 2016-02-12 3:11 ` Gary Thomas 2016-02-12 3:18 ` Khem Raj 2016-02-12 3:49 ` Gary Thomas
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.