http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53006
Bug #: 53006 Summary: libstdc++-prettyprinters/shared_ptr.cc FAILs Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: tro...@gcc.gnu.org Host: i386-pc-solaris2.11 Target: i386-pc-solaris2.11 Build: i386-pc-solaris2.11 Since prettyprinters.exp has been enabled recently, the shared_ptr.cc test FAILs on Solaris 11/x86 only: FAIL: libstdc++-prettyprinters/shared_ptr.cc print esp FAIL: libstdc++-prettyprinters/shared_ptr.cc print ewp1 FAIL: libstdc++-prettyprinters/shared_ptr.cc print ewp2 FAIL: libstdc++-prettyprinters/shared_ptr.cc print sp1 FAIL: libstdc++-prettyprinters/shared_ptr.cc print wp1 FAIL: libstdc++-prettyprinters/shared_ptr.cc print wp2 I'm using a 64-bit gdb 7.4 linked with the vendor-supplied libpython2.6.so (same problem with libpython2.7.so). In libstdc++.log, I find: $1 = skipping: 80 return 0;^M Python Exception <type 'exceptions.TypeError'> expected string or buffer: ^M Python Exception <type 'exceptions.TypeError'> expected string or buffer: ^M got: $1 = Python Exception <type 'exceptions.TypeError'> expected string or buffer: ^M FAIL: libstdc++-prettyprinters/shared_ptr.cc print esp skipping: Python Exception <type 'exceptions.TypeError'> expected string or buffer: ^M std::shared_ptr (empty) 0x0^M Manually running gdb with the equivalent of the generated shared_ptr.gdb file, I get: (gdb) print esp Python Exception <type 'exceptions.TypeError'> expected string or buffer: Python Exception <type 'exceptions.TypeError'> expected string or buffer: $1 = std::shared_ptr (empty) 0x0 Unfortunately, expect/dejagnu merge stdout and stderr here, causing the mixture of both streams. When I set python print-stack full first, I get: (gdb) print esp $1 = Traceback (most recent call last): File "/vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/../python/libstdcxx/v6/printers.py", line 777, in __call__ match = self.compiled_rx.match(typename) TypeError: expected string or buffer Traceback (most recent call last): File "/vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/../python/libstdcxx/v6/printers.py", line 777, in __call__ match = self.compiled_rx.match(typename) TypeError: expected string or buffer std::shared_ptr (empty) 0x0 I cannot really make sense of that (barely knowing python), but if I add print type(typename) in printers.py, I find: <type 'NoneType'> Strangely, the same gdb binary works on Solaris 10 with the bundled libpython2.6.so, so this might be a bug in that library on Solaris 11. Suggestions? Rainer