Размер массива C через gdb

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

(gdb) p *[email protected]

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

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

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

Ответ 1

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

Для int array[5],

(gdb) ptype array
type = int [5]

Ответ 2

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

int array[5];

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

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

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

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