aarch64 gdb debug libstdc ++ не удалось найти метод stringstream str ()

Я уже установил пакет libstdc ++ — debuginfo в Fedora21-aarch64, но когда я использую gdb для печати stringstream.str (), я всегда получаю это сообщение:

(gdb) ptype sp
type = class std::tr1::shared_ptr<std::basic_stringstream<char,   std::char_traits<char>, std::allocator<char> > >
[with _Tp = std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >]
: public std::tr1::__shared_ptr<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >, (__gnu_cxx::_Lock_policy)2> {
public:
shared_ptr(void);
void shared_ptr<std::basic_stringstream<char> >(std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > *);
}
(gdb) p sp->str()
Couldn't find method std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::str

исходный код, как показано ниже:

std::tr1::shared_ptr<stringstream> sp ( new stringstream(ios_base::in | ios_base::out | ios_base::binary));
std::tr1::shared_ptr<ostream> osp = sp;
osp->write("hello",6);
cout<<sp->str()<<endl;

и пакет debuginfo, который я установил, как показано ниже:

#debuginfo-install libstdc++
Loaded plugins: auto-update-debuginfo, langpacks
Package gcc-debuginfo-4.9.2-1.fc21.aarch64 already installed and latest version
Package glibc-debuginfo-2.20-5.fc21.aarch64 already installed and latest version
Package gcc-debuginfo-4.9.2-1.fc21.aarch64 already installed and latest version
No debuginfo packages available to install

-2

Решение

В общем, GDB не очень хорош при вызове функций C ++ при отладке. Проблема в том, что если stringstream::str() функция фактически присутствует в исполняемом файле, который GDB не может вызвать, и часто функция отсутствует, либо потому, что вы не использовали ее в своей программе, либо она была встроена во всех вызывающих программах.

Вы можете попробовать:

p sp->_M_stringbuf.str();

или если это все еще не работает тогда:

p sp->_M_stringbuf._M_string._M_dataplus._M_p

Это напечатает char* член строки внутри stringbuf stringstream.

0

Другие решения


По вопросам рекламы [email protected]