Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* printing array in function
@ 2010-09-03  9:06 Nicolas Sabouret
  2010-09-03  9:16 ` Jan Kratochvil
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Nicolas Sabouret @ 2010-09-03  9:06 UTC (permalink / raw)
  To: gdb

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


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-09-03 23:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-03  9:06 printing array in function Nicolas Sabouret
2010-09-03  9:16 ` Jan Kratochvil
2010-09-03  9:38   ` Nicolas Sabouret
2010-09-03 10:24 ` Steffen Dettmer
2010-09-03 16:21 ` Andreas Schwab
2010-09-03 19:18   ` Nicolas Sabouret
2010-09-03 23:10     ` Joachim Protze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox