2015-07-04 2 views
2

Я хотел бы видеть contens моего массива при передаче в качестве аргумента функции через gdb.Как видеть содержимое массива в gdb при передаче из функции

Скажем, у меня есть некоторый код, который выглядит как

#include <stdio.h> 

int fun(int b[], int len) 
{ 
int i = 0; 

/* how do I see the contents of array b[] in gdb */ 
for(i = 0; i < len; ++i) 
    printf("%d ", b[i]); 
} 

int main() 
{ 
    int a[] = {1,2,3,4,5}; 

    fun(a, sizeof(a)/sizeof(*a)); 
    return 0; 
} 

В БГД, а [] выглядит следующим образом

(gdb) disp a 
1: a = {1, 2, 3, 4, 5} 

Но если я пытаюсь напечатать б [], так как это указатель (как массив передается как указатель), содержимое выглядит следующим образом

fun (b=0x7fffffffdf90, len=5) at main.c:14 
(gdb) disp b 
2: b = (int *) 0x7fffffffdf90 

Я хочу, чтобы иметь возможность видеть содержимое б [] так же, как я видя [], это помогает мне отлаживать.

Как это сделать?

+1

Где прототип 'удовольствия()'? – Olaf

+0

Обратите внимание, что массивы ** не ** указатели! Однако они чаще всего неявно _converted_ указателю. – Olaf

ответ

Смежные вопросы