使用 gdb 时,如何在 Pascal 中打印数组中的部分值
When using gdb, how to print a part of values in array in Pascal
我们知道,在C语言中,如果有一个数组
int data[100];
然后,在 gdb 中,我们可以通过键入以下命令将 data[4] 打印到 data[14]:
print *(data+4)@11
所以,问题是:当我们用Pascal语言编程时,我们可能有一个数组:
var
data: array[0..100] of Integer;
在gdb中调试时,如何打印data[4]到data[14]的值?
非常感谢。
当 gdb 的语言设置为 Pascal 时无法执行此操作 -- 没有人在 Pascal 表达式解析器中实现此扩展。
一种解决方法是打印数组的地址,然后暂时将语言切换到 C 和 print *(type *)addr @ ...
。
另一种解决方法是编写一个新的 gdb 命令(使用 CLI 或使用 Python)来执行您喜欢的操作。或者,如果您正在进行大量 Pascal 调试,则可以在 gdb 中实现此扩展——这并不难。
我们知道,在C语言中,如果有一个数组
int data[100];
然后,在 gdb 中,我们可以通过键入以下命令将 data[4] 打印到 data[14]:
print *(data+4)@11
所以,问题是:当我们用Pascal语言编程时,我们可能有一个数组:
var
data: array[0..100] of Integer;
在gdb中调试时,如何打印data[4]到data[14]的值?
非常感谢。
当 gdb 的语言设置为 Pascal 时无法执行此操作 -- 没有人在 Pascal 表达式解析器中实现此扩展。
一种解决方法是打印数组的地址,然后暂时将语言切换到 C 和 print *(type *)addr @ ...
。
另一种解决方法是编写一个新的 gdb 命令(使用 CLI 或使用 Python)来执行您喜欢的操作。或者,如果您正在进行大量 Pascal 调试,则可以在 gdb 中实现此扩展——这并不难。