Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to "watch" a C++ dynamic array using gdb?

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.

like image 591
Keiji Avatar asked Oct 30 '09 18:10

Keiji


1 Answers

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.

like image 100
Matt K Avatar answered Nov 02 '22 22:11

Matt K