Значение переменной с использованием WinDbg
вопрос:
как отобразить стоимостью of a C++ итератор использование WinDbg, иллюстрированный ниже:
for (vector<string>::iterator i = args.begin(); i != args.end(); i++)
//omitted
//for instance:
} else if (*i == "-i") {//attempting to display the value of *i
++i;
if (!::PathFileExistsA(i->c_str()))
{
Примечание:
используя ?? оцените команду выражения C++, которая отображает следующее:
0:000> ?? i
class std::_Vector_iterator<std::basic_string<char,
std::char_traits<char>,
std::allocator<char> >,
std::allocator<std::basic_string<char,
std::char_traits<char>,
std::allocator<char> > > >
+0x000 _Mycont : 0x0012ff40 std::_Container_base_secure
+0x004 _Mynextiter : (null)
+0x008 _Myptr : 0x009c6198
std::basic_string<char,std::char_traits<char>,std::allocator<char> >
- может другая команда дисплей/печати значение
*i
- пожалуйста, поправьте меня, если я неправильно!--29-->
2 ответов
попробуй:
dt -r i
, который будет рекурсивно сбросить итератор. Один из участников должен быть информацией, которую вы ищете. Многословно, но эффективно.
трудность в том, что *i
вызывает вызов функции operator*
на итератор. Строка, которую вы хотите, вероятно, указывает на _Myptr
at 0x009c6198
.