簡體   English   中英

Visual Studio 2010:如何將內存打印到文本文件?

[英]Visual Studio 2010: How to print memory to a text file?

我正在搜索內存中的特定系列位,但是我不知道確切的地址。 在Visual Studio中,有沒有一種方法可以將大量內存打印到文本文件中,以便我可以搜索所需的位?

對尚未分配給程序的內存進行編程訪問是未定義的行為。 如果您開始在任意位置讀取內存,則程序可能會崩潰。

在調試模式下,您可以在Visual Studio中打開“內存窗口”,復制內容,將其粘貼到文本編輯器中,然后保存到文本文件中以進行進一步分析。 從“調試”菜單中,選擇“窗口” /“內存” /“內存1”(根據需要選擇2、3或4)。 在頂部輸入范圍的初始地址,進行選擇,然后將數據復制到剪貼板。

鑒於您的程序可能會因訪問未定義或非法的內存區域而產生故障,因此以下是從內存中打印的方法:

  // Assign a point to point to memory.
  uint8_t const * pointer_to_memory = (uint8_t const *) /* Put address here */;

  // Read from memory
  uint8_t byte = *pointer_to_memory;

  // Output the value
  std::cout << std::hex << byte << " ";

轉儲內存的常見輸出是:

AAAAAAAA    BB BB BB BB BB BB BB BB   BB BB BB BB BB BB BB BB  .................

哪里:
AAAAAAAA-內存地址(指針的內容),通常為十六進制。
BB-內存字節,通常為十六進制。
....-由字節或'。'表示的ASCII字符 用於不可打印的字符。

正如其他人所評論的那樣,您可能需要使用OS API來讀取內存的受限區域,或者您的應用程序需要以系統特權運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM