GDB在arrays初始化时报告“当前上下文中没有符号”

我试图初始化一个大小为ceil(buflen / 125.0)的数组,如下所示:

long long maxjpg = ceil(buflen/125.0); long long arr[maxjpg]; 

我没有收到编译器错误,但GDB报告“当前上下文中没有符号’arr’”。 我发现的唯一修复方法是将数值硬编码到数组大小中,如下所示:

 long long arr[5]; 

我尝试使用const和这些方法的任意组合使用不同的变量类型进行转换。 我知道ceil会返回一个double ,我也尝试过使用它。

初始化值并将其打印如下工作:

 arr[0] = 25; printf(pos 0 is %d\n", arr[0]); 

输出: pos 0 is 25

在该修改之后打印arr[0]到GDB导致“值已被优化”。

重现的最低可行代码:

 #include  int main(void){ long long size = ceil(123.45); long long arr[size]; return 0; } 

GDB Fedora 7.4.50.20120120-52.fc17

VGA当前不在gdb中工作。 有一个关于它的错误和正在进行的修复它的项目: https : //sourceware.org/gdb/wiki/VariableLengthArray

archer.git中有一个实现在某些情况下可以工作,但是它不适合进入主干。