← Back to team overview

touch-packages team mailing list archive

[Bug 1446828] Re: gdb pretty printers do not auto-load on Trusty

 

doko, could this be SRUed to trusty? (Maybe you already have other fixes
lined up?)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to gcc-4.8 in Ubuntu.
https://bugs.launchpad.net/bugs/1446828

Title:
  gdb pretty printers do not auto-load on Trusty

Status in gcc-4.8 package in Ubuntu:
  Fix Released
Status in gcc-4.8 source package in Trusty:
  Confirmed

Bug description:
  On Ubuntu 14.04.2 (Trusty), the file in libstdc++6-4.8-dbg to auto-
  load the pretty printers doesn't resolve the right path to the
  printers. To reproduce, on a fresh install:

  $ cat test.cpp
  #include <vector>
  int main() {
    std::vector<int> v;
    v.push_back(1);
    return 0;
  }
  $ g++ test.cpp -g
  $ gdb a.out -ex start
  Reading symbols from a.out...done.
  Temporary breakpoint 1 at 0x400956: file test.cpp, line 3.
  Starting program: /home/emaisin/a.out 
  Traceback (most recent call last):
    File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py", line 63, in <module>
      from libstdcxx.v6.printers import register_libstdcxx_printers
  ImportError: No module named 'libstdcxx'

  Temporary breakpoint 1, main () at test.cpp:3
  3	  std::vector<int> v;
  (gdb) 

  It seems like the fixup for multiarch actually adds an extra "..":

      if not os.path.basename(os.path.dirname(__file__)).startswith('lib'):
          backdirs += 1 # multiarch subdir

  Removing these two lines almost makes it work:

  $ gdb a.out -ex start
  Reading symbols from a.out...done.
  Temporary breakpoint 1 at 0x400956: file test.cpp, line 3.
  Starting program: /home/emaisin/a.out 
  Traceback (most recent call last):
    File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py", line 63, in <module>
      from libstdcxx.v6.printers import register_libstdcxx_printers
    File "/usr/lib/x86_64-linux-gnu/../../share/gcc-4.8/python/libstdcxx/v6/printers.py", line 54
      raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
                      ^
  SyntaxError: invalid syntax

  Temporary breakpoint 1, main () at test.cpp:3
  3	  std::vector<int> v;

  
  That last problem is tracked in bug #1256419, which is still a pending issue in Trusty.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.8/+bug/1446828/+subscriptions


References