当gdb的语言设置为Pascal时,没有办法做到这一点 - 没有人在Pascal表达式解析器中实现过这个扩展。
一种解决方法是打印阵列的地址,然后暂时将语言切换为C和
print (type )addr @ …
。
另一种解决方法是编写一个新的gdb命令(使用CLI或使用Python)来执行您喜欢的操作。或者,如果你正在进行大量的Pascal调试,你可以在gdb中实现这个扩展 - 这并不难。
我们知道,在C语言中,如果有一个数组
int data [100];
然后,在gdb中,我们可以通过键入以下内容将数据[4]打印到数据[14]:
print *(data + 4)@ 11
所以,问题是:当我们用Pascal语言编程时,我们……