违规行:
8048f70: ff 24 85 00 a4 04 08 jmp *0x804a400(,%eax,4)
Run Code Online (Sandbox Code Playgroud)
位于804a400的反汇编代码中没有指令(我的列表结束于804a247)
当我检查以查看该内存位置的内容时,我得到:
(gdb) x/c 0x804a40c
0x804a40c: -103 '\231'
(gdb) x/t 0x804a40c
0x804a40c: 10011001
(gdb) x/s 0x804a40c
0x804a40c: "\231\217\004\b\222\217\004\b\211\217\004\b\202\217\004\bw\217\004\b\002"
(gdb) x/3x 0x804a40c
0x804a40c: 0x99 0x8f 0x04
Run Code Online (Sandbox Code Playgroud)
这个jmp语句到底试图做什么?
我真的希望有一些方法可以做到这一点:
如何在python中创建一个方法列表以应用于对象?
给定一些任意类:
class someClass:
def __init__(self, s):
self.size=s
def shrink(self):
self.size-=1
def grow(self):
self.size+=1
def invert(self):
self.size= -self.size
Run Code Online (Sandbox Code Playgroud)
我希望能够像这个列表一样编写一个可迭代的对象:
instructions=[shrink,grow,shrink,shrink,grow,invert]
Run Code Online (Sandbox Code Playgroud)
要在以后运行for循环:
elephant=someClass(90)
sizeList=[]
for ins in instructions:
elephant.ins()
sizeList.append(elephant.size)
Run Code Online (Sandbox Code Playgroud)
我以前做过类似功能的事情,不能用方法做到这一点会要求我重写一些令人生畏的代码...