2013-01-08 61 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;整潔的把戲。 –