views:

320

answers:

1

Consider the following example:

int size = 10, *kk = new int[size];

for (int i = 0; i < size; i++) {
    kk[i] = i;
}

delete [] kk;

How can I add a watch for the whole array? I can add a watch one by one (kk[0],*kk[1]*...), but since I know the array's length is there a way to do it automatically? I mean something like kk[0..size-1] or so.

I'm using NetBeans IDE together with cygwin g++ and gdb.

+6  A: 

Try display *kk@<size> From the doc for the print command:

@ is a binary operator for treating consecutive data objects anywhere in memory as an array. FOO@NUM gives an array whose first element is FOO, whose second element is stored in the space following where FOO is stored, etc. FOO must be an expression whose value resides in memory.

Matt Kane
Nice! This is what I wanted :). http://bit.ly/4yYT4V
Keiji
I prefer to use p instead of "display", as it is easier to type. I've added it as a separate answer here.
Nocturne
"print" and "display" are not the same command. "display" sets a watch on a variable so you see it every time you get a prompt, assuming the variable is in scope.
Matt Kane