2013-01-08 62 views
6

所以,我有一个变量buffPtr:TPointer 它有一个大小为16,并包含一系列的数字,主要是从0开始,说像013854351387365.我确定它包含值,因为应用程序做它没事。如何在Delphi中调试时显示指针的值?

我想在调试时看到这个值。

如果我在表中添加“PAnsiChar(buffPtr)^”,我只能看到第一个字节。

+1

你试过把PAnsiChar(BufPtr)(没有^)吗? – jachguate

回答

8

我添加了一个手表 PAnsiChar(buffPtr)^

与观看属性为

重复计数为16 小数

enter image description here

+0

我不明白这个问题或答案。你能详细说明一下吗? –

+0

如果您还包含来自此配置的* output *的图片,而不仅仅是对话框的输入,那将会很好。 –

3

你设置的手表做转储记忆区域?对于一些有帮助的结构。

如果可以重新编译应用程序,然后定义如下:

type 
    T16Values = array[0..15] of Byte; 
    P16Values = ^T16Values; 

然后投你的指针变成P16Values,并查看。

如果它是另一种数据类型比Byte,请相应地更改上面的代码。

+0

恕我直言,你不需要,因为调试器直接处理自定义重复。 –

+0

有时候,在代码时间这样做更方便,因为保存调试器设置需要保存整个.DSK,这经常会导致痛苦。 –

+1

...或者只是将16添加到表达式中。无需更改设置。 ;) –

9

如果您想要序号/字节值,只需输入手表表达式PAnsiChar(buffPtr)^,16PByte(buffPtr)^,16

这里的诀窍是在逗号后添加模式重复的数量,如,16

这是恕我直言,比改变观察属性更方便,它与IDE的F7评估命令一起工作。

+0

+1;整洁的把戏。 –