Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
94 views
in Technique[技术] by (71.8m points)

Access memory address in python

My question is: How can I read the content of a memory address in python? example: ptr = id(7) I want to read the content of memory pointed by ptr. Thanks.

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Have a look at ctypes.string_at. Here's an example. It dumps the raw data structure of a CPython integer.

from ctypes import string_at
from sys import getsizeof

a = 0x7fff 
print(string_at(id(a),getsizeof(a)).hex())

Output:

0200000000000000d00fbeaafe7f00000100000000000000ff7f0000

Note that this works with the CPython implementation because id() happens to return the virtual memory address of a Python object, but this is not guaranteed by the Python language itself.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...