2009-04-16 27 views
6

Câu hỏi:Giá trị của một biến sử dụng WinDbg

Làm thế nào để hiển thị giá trị của một iteratorC++sử dụng WinDbg, minh họa dưới đây:

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())) 
     { 

Lưu ý:

Sử dụng ?? đánh giá C++ lệnh biểu hiện, hiển thị như sau:

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> > 
  • thể khác lệnh hiển thị /in giá trị của *i - hãy sửa lại cho tôi nếu tôi sai

Trả lời

8

Hãy thử:

dt -r i 

Điều này sẽ đệ quy đệ quy trình lặp. Một trong những thành viên nên là thông tin bạn tìm kiếm. Verbose, nhưng hiệu quả.

+0

Cảm ơn jeffamaphone! Dữ liệu ở mức '+ 0x000 _Buf' – Aaron

1

Khó khăn là *i gọi một cuộc gọi hàm tới operator* trên trình lặp. Chuỗi bạn muốn có thể được trỏ đến bởi _Myptr tại 0x009c6198.

Các vấn đề liên quan