This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
printing array in function
- From: Nicolas Sabouret <Nicolas dot Sabouret at lip6 dot fr>
- To: gdb at sourceware dot org
- Date: Fri, 03 Sep 2010 11:06:02 +0200
- Subject: printing array in function
Hi all,
In the frame of a 1st-year course in C (starting in next october), we
are using a sub-set of gdb features (embedded in a geany plugin) to help
our students understand what is going on in their code.
The problem we have is that arrays passed to functions are seen as
pointers by gdb. Here is a simple example :
1: void f(int tab[]) {
2: tab[0] = 1;
3: }
4: int main() {
5: int t[] = {-1,-1};
6: f(t);
7: return 0;
8: }
$ gcc -g -o test test.c
$ gdb test
(gdb) b 6
(gdb) run
(gdb) p t -> {-1, -1}
(gdb) s
(gdb) p tab -> (int *) 0xbffff440
The only solution we found to display tab as an array is to use "p
*tab@2", but this requires knowing the exact size of the array (2 in
this example).
Our problem is that the gdb calls are integrated in a front-end for
students (they do not type gdb commands directly) and that our frontend
has no way of "guessing" what is the correct size for the array.
My question is : is there a way to display an array in a function
(without knowing the size a priori).
Thanks in advance for any help on this subject.
--
Nicolas Sabouret, Assistant Professor
University Pierre & Marie Curie
http://www-poleia.lip6.fr/~sabouret