2012-01-10 2 views
10

Я знаю, что вы можете печатать массив в gdb, например.Размер массива C через gdb

(gdb) p *[email protected] 

Есть ли команда gdb, которая может рассказать вам о ее длине, например. удобный ярлык печатая что-то вроде:

(gdb) p sizeof(array)/sizeof(int) 

В случае, когда массив был определен во время компиляции, и вы хотите, чтобы проверить его

ответ

12

Вы можете использовать ptype, чтобы узнать тип символа.

Для int array[5],

(gdb) ptype array 
type = int [5] 
+0

приятная команда ... спасибо –

+0

вот что я искал .. – bph

+0

тоже работал для fortran – wander95

11

Если это на самом деле определяется как массив, например,

int array[5]; 

Тогда да, вы можете использовать то, что вы написали, хотя лучше и более общий способ:

(gdb) p sizeof(array)/sizeof(*array) 

Это не принимает тип массива.

Если переменная определена как указатель, то нет.

+0

хорошая точка, то есть более общий характер - я думал, что может быть какой-то GDB ярлык для этого? или, возможно, вы можете как-то определить свое? – bph

+2

@Hiett Ну, если вы просто напечатаете массив, он напечатает все значения. Помимо этого, я не знаю. – Kevin

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