linux - GDB is not showing line number information although debuginfo is installed -


I'm trying to debug gcov code I have written a simple program that < Code> __GCOV_flas () method is called the part of GCC / GCOV.

After confirming that the libgcov.a library is not created with debug symbols, I have used GCC on my machine ( SLES 10 ) Has installed the debuginfox package for.

  # GCC-V is built with the built in specs: x86_64-suse-linux is configured with: ../configure --enable-threads = posix --prefix = / usr --with - local-prefix = / usr / local --infodir = / usr / share / info - -impress = / usr / share / man --libdir = / usr / lib64 --libexecdir = / usr / lib64 - enable-languages ​​= c, c ++, objc, foreign, obj-c ++, java, ada --enable-check = release --with-gxx- include- dir = / usr / include / c + + / 4.1.2 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir = / lib64-with-System-zlib --enable-shared --enable -__ cxa_atexit --enable-libstdcxx -allocator = new --program-suffix = --enable-version-specific-runtime-libs -without-system-libunwind -with-cpu = generic -host = x86_64-suse-linux Thread model: posix gcc version 4.1.2 20070115 (SUSE Linux) # rpm -qi gcc-debuginfo-4.1.2_20070115-0.29.6.x86_64 Name: gcc-debuginfo restoration: (no reinstallation) Version: 4.1 .2_20070115 Vendor: SUSE Linux Products GmbH, Nuremberg, Germany Release: 0.29.6 Date of Build: Saturday 5 September 03:04:50 2009 Installation Date: Thursday 24 April 05:25:32 2014 Build Host: Business Group: Devello Piment / Debug source RPM: GCC-4.1.2_20070115-0.29.6. Src.rpm Size: 251823743 License: GPL v2 or later signature Side: DSA / SHA1, Sat 5 September 03:06:59 2009, Key ID a84edae89c800aca Packager: http: //bugs.opensuse.org URL: http://gcc.gnu.org/ Summary: Debug information for packages GCC Description: This package package provides debug information for GCC. Debug info is useful during the development of applications when using this package or debugging this package. Distribution: SUSE Linux Enterprise 10 / usr / lib / debug / usr / bean # ls -ltr gcov.debug -r-r-r-r-1 root root 94216 5 September 2009 gcov.debug   

However, after setting up the proper version of debuginfo ( gcov.debug ), GDB can still not detect line number information, this line line (or without line reporting) function to pace).

  (gdb) s 26 i ++; (GDB) 27 __ gcv_fu (); 28 printf ("% d", i) of (GDB); Show Gbb (gbb) debug-file-directory directory where search for different debug symbols is "/ usr / lib / debug"   

line number for GCV GCOV Why can not recognize information? If I did not install a proper version of the debugino package for GCC / GCOV, then how to confirm it?

After confirming that libgcov.a library is not created with debug symbols , I have installed the debuginfo package

You will not be able to understand how the debuginfo package works. They can not magically add debugginfo to an archival library which was created without the debug symbols (or which were taken away).

General build flow is:

  • -g
  • all complete Prepare separate Debugo packages for well-linked binaries (executable and shared libraries) < / Li> Package.

    Obviously, "Libraries not collections" were not honored on SLES10, and libgcov.a was also stripped. Since different debugino packages do not work for library libraries, you can not get that information back. Your only option is to rebuild from GCC sources.

    P.S. Why would they strip libgcov.a ?

    This is a trade-off: the binaries that will end the end-user link, but the code libgcov.a will not be debuggable.

    Since most end user debug never debug libgcov.a , I can say this was not an unfair trade-off.

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -