gdb display some Python error when displaying some C++ objects Here is ONE example albeit not the only. $ p trie $15 = {_vptr.TrieTree = 0x8093040, m_root = warning: RTTI symbol not found for class 'std::tr1::_Sp_counted_base_impl<gnote::TrieTree<std::string>::TrieState*, std::tr1::_Sp_deleter<gnote::TrieTree<std::string>::TrieState>, (__gnu_cxx::_Lock_policy)2>' std::shared_ptr (count 4) 0x80a7440, m_fail_states = std::vector of length 8, capacity 8 = {warning: RTTI symbol not found for class 'std::tr1::_Sp_counted_base_impl<gnote::TrieTree<std::string>::TrieState*, std::tr1::_Sp_deleter<gnote::TrieTree<std::string>::TrieState>, (__gnu_cxx::_Lock_policy)2>' std::shared_ptr (count 2) 0x80a74f8, warning: RTTI symbol not found for class 'std::tr1::_Sp_counted_base_impl<gnote::TrieTree<std::string>::TrieState*, std::tr1::_Sp_deleter<gnote::TrieTree<std::string>::TrieState>, (__gnu_cxx::_Lock_policy)2>' std::shared_ptr (count 2) 0x80a7568, warning: RTTI symbol not found for class 'std::tr1::_Sp_counted_base_impl<gnote::TrieTree<std::string>::TrieState*, std::tr1::_Sp_deleter<gnote::TrieTree<std::string>::TrieState>, (__gnu_cxx::_Lock_policy)2>' std::shared_ptr (count 2) 0x80a75d8, Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/gdb/libstdcxx/v6/printers.py", line 32, in to_string self.val['_M_ptr']) TypeError: %d format: a number is required, not gdb.Value , Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/gdb/libstdcxx/v6/printers.py", line 32, in to_string self.val['_M_ptr']) TypeError: %d format: a number is required, not gdb.Value , Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/gdb/libstdcxx/v6/printers.py", line 32, in to_string self.val['_M_ptr']) TypeError: %d format: a number is required, not gdb.Value , Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/gdb/libstdcxx/v6/printers.py", line 32, in to_string self.val['_M_ptr']) TypeError: %d format: a number is required, not gdb.Value , Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/gdb/libstdcxx/v6/printers.py", line 32, in to_string self.val['_M_ptr']) TypeError: %d format: a number is required, not gdb.Value }, m_case_sensitive = false, m_max_length = 3}
I'm looking into the printer bug. Jan, I'll send a patch when it is ready. Or, I can check it in to a branch if you'd prefer, just let me know.
(In reply to comment #1) > Or, I can check it in to a branch if you'd prefer, just let me know. Thanks, either way, not sure how alive the archer branch is since it is now in FSF GDB.
Created attachment 346935 [details] patch for python printer This turned out to be a bug already fixed in the latest libstdc++ printers. I'm attaching a patch I made against the SRPM gdb-6.8.50.20090302. I didn't update the .spec file, sorry. I compared the SRPM's printers with the latest and the other differences are very minor. Hubert, if you know of other printer bugs, please report them, and I will fix them ASAP. Thanks.
gdb-6.8.50.20090302-24.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/gdb-6.8.50.20090302-24.fc11
gdb-6.8.50.20090302-27.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/gdb-6.8.50.20090302-27.fc11
gdb-6.8.50.20090302-27.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report.