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中有一个实现在某些情况下可以工作,但是它不适合进入主干。