This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gdb discrepancy in c++ iterators

On Sat, 29 Mar 2003, Fred Ma wrote:

> Hello,
> I'm having the following problem only on cygwin,
> not on solaris 8.  I have a sanity-check program:
>      #include<vector>
>      #include<iostream>
>      using namespace std;
>      int main(void)
>      {
>         vector<int> vi(3);
>         vector<int>::iterator it_vi = vi.begin();
>         cout << "Hello world.";
>      }
> I compile it with gcc 3.2 use
> gdb2003-03-03-cvs(cygwin-special) to view
> vi.begin() and it_vi.  They are different:
>      (gdb) p vi.begin()
>      $1 = {<iterator<std::random_access_iterator_tag,int,int,int*,int&>> =
>                  {<No data fields>}, _M_current = 0xc7e44589}
>      (gdb) p it_vi
>      $2 = {<iterator<std::random_access_iterator_tag,int,int,int*,int&>> =
>                  {<No data fields>}, _M_current = 0xa041de0}
> Why are they different?  If I actually dereference the iterators,
> they contain the same thing.  But I want to deal with the iterators
> themselves.  In particular, I want a conditional breakpoint to trigger
> when it_vi==vi.begin()+4.  gdb won't let you add 4 to a random
> access iterator, so I have to use the _M_current member data.
> Since they are not the same above, I can't do that.  Thanks for
> any light on why they differ.
> Fred

Umm, you do know that calling vi.begin() will create a *new* iterator,
right?  As for it working on other systems, they may have different
implementations of STL iterators.
      |\      _,,,---,,_		pechtcha at cs dot nyu dot edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor at watson dot ibm dot com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

Oh, boy, virtual memory! Now I'm gonna make myself a really *big* RAMdisk!
  -- /usr/games/fortune

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]