Значение переменной с использованием 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.