Я получил то, что мне было нужно, перекомпилировав все (не только одну или две единицы перевода) с -D_GLIBCXX_DEBUG
. Тогда я могу просто сделать
(gdb) p is.tellg()
$21 = {_M_off = 0, _M_state = {__count = 0, __value = {__wch = 0, __wchb = "\000\000\000"}}}
(gdb)
, где is
- это std::istream&
. Раньше я получал
(gdb) p is.tellg()
Couldn't find method std::istream::tellg
(gdb) p is
Кроме того, когда я перестраивал только один модуль компиляции, он работал, но зависал с
...
305d85d000-305d85e000 r--p 0005d000 fd:01 1180082 /lib64/libfreebl3.so
305d85e000-305d85f000 rw-p 0005e000 fd:01 118
Program received signal SIGABRT, Aborted.
0x0000003052e35215 in raise () from /lib64/libc.so.6
(gdb)
Смотри также: http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode