使用gdb时,如何在Pascal中打印数组中的一部分值


生如夏花
2025-03-09 07:00:47 (7天前)


我们知道,在C语言中,如果有一个数组

int data [100];
然后,在gdb中,我们可以通过键入以下内容将数据[4]打印到数据[14]:

print *(data + 4)@ 11
所以,问题是:当我们用Pascal语言编程时,我们……

2 条回复
  1. 0# Just do it | 2019-08-31 10-32



    当gdb的语言设置为Pascal时,没有办法做到这一点 - 没有人在Pascal表达式解析器中实现过这个扩展。



    一种解决方法是打印阵列的地址,然后暂时将语言切换为C和

    print (type )addr @ …




    另一种解决方法是编写一个新的gdb命令(使用CLI或使用Python)来执行您喜欢的操作。或者,如果你正在进行大量的Pascal调试,你可以在gdb中实现这个扩展 - 这并不难。


登录 后才能参与评论