Неправильный размер печати GDB с большим массивом stati c - PullRequest
0 голосов
/ 28 апреля 2020

Я вижу следующую проблему с GDB (GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409- git), которая печатает размер большого статически распределенного массива фиксированного размера:

(gdb) p &buf
$1 = (char (*)[52428800000]) 0x15491f84e000 <buf>
(gdb) p sizeof(buf)
$2 = 889192448

Я также попытался printf("%ld", sizeof(buf)); в соответствующей программе на C ++, которая печатает 52428800000, как и следовало ожидать.

Ожидается ли такое поведение? Какое меньшее значение печатает GDB?

1 Ответ

0 голосов
/ 28 апреля 2020

Я понял это сразу после публикации - похоже, проблема в том, что gdb по умолчанию использует выходные данные int32 для sizeof - printf("%d", sizeof(buf)) печатает 889192448. Я посмотрю на подачу отчета об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...