【问题标题】:Get pointer to memory for which I have the virtual address in a long type value获取指向我在长类型值中具有虚拟地址的内存的指针
【发布时间】:2012-11-26 15:15:27
【问题描述】:

我使用函数调用分配了一个内存,该函数调用返回 64 位物理地址。 我已经使用函数调用映射了该地址,该函数调用返回 64 位虚拟地址。

现在,我需要一个指针来访问这个内存,我在 Python 中有一个长类型值的虚拟地址,我尝试使用 ctypes 模块指针()强制转换,但最终访问了一些令人难以置信的内存

我是这样访问的:

VA = Virtual address I got
VA = ctypes.c_uint64(VA)
pVA = pointer(VA)

for i in range(size):
    print pVA[i]

【问题讨论】:

  • 我希望我能看到那个难以置信的记忆! :)
  • 你能给个代码示例吗??
  • 你是如何分配这个内存的?您是说要以 uint64 数组的形式访问它吗?

标签: python ctypes virtual-address-space


【解决方案1】:

下面的代码从指定地址构建一个 size 个元素的无符号 64 位整数数组:

arr = (ctypes.c_uint64*size).from_address(VA)
for i in arr:
    print i

参考:from_address

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 2016-12-13
    • 1970-01-01
    相关资源
    最近更新 更多