2013-05-05 95 views
2

我嘗試了一些在線查找的建議,但它對我無效。我使用Visual Studio 2010。基本上我輸入loc(kcs(1,4))(這是我的變量),我得到了157510036.其十六進制是9636994.因此,然後我鍵入(INTEGER *)0x9636994,但在監視窗口下的「值「列中寫明」未定義的變量INTEGER「。我用小寫整數或實數和相同的答案。任何建議?Visual Studio 2010:如何查看內存十六進制位置

+0

ops更正感謝 – Lupocci 2013-05-05 18:17:04

回答

1

我輸入了(INTEGER *)0x9636994,但在「值」列下的監視窗口中顯示「未定義的變量INTEGER」。

根據Restrictions on Native C++ Expressions

類型轉換

如果你投的類型,類型必須是已知的調試器。你的程序中必須有另一種類型的對象。 不支持使用typedef語句創建的類型

嘗試使用基礎類型。因此,例如,如果INTEGER實際上是int,那麼您會嘗試觀看(int *)0x9636994

這也假設該變量固定爲0x9636994(基本上,你並不是試圖引用棧上的瞬態)。

+0

該變量是fortran模塊中的一個可分配變量,它位於固定內存位置。 Loc在整個程序中始終保持相同的價值。我嘗試(int *)0x9636994建議,但它給「值」列下的「語法錯誤」。任何其他想法? – Lupocci 2013-05-05 18:19:56

+0

@Alberto你可以嘗試'*(int *)0x9636994'。但除此之外,我能想到的唯一的其他事情就是*(如果)轉換爲類型的約束,調試器必須知道該類型。*但是在應用程序中沒有'int'似乎不太可能。 – 2013-05-07 07:56:56

+0

對此有何更新? (int *)或(int *)不起作用 – Lupocci 2014-01-16 22:41:47