コード例 #1
0
ファイル: glibc.py プロジェクト: PMickael/gdb-heap
    def bin_at(self, i):
        # addressing -- note that bin_at(0) does not exist
        #  (mbinptr) (((char *) &((m)->bins[((i) - 1) * 2]))
        #	     - offsetof (struct malloc_chunk, fd))

        ptr = self.field('bins')[(i-1)*2]
        #print '001', ptr
        ptr = ptr.address
        #print '002', ptr
        ptr = ptr.cast(type_char_ptr)
        #print '003', ptr
        ptr -= offsetof('struct malloc_chunk', 'fd')
        #print '004', ptr
        ptr = ptr.cast(MBinPtr.gdb_type())
        #print '005', ptr
        return MBinPtr(ptr)
コード例 #2
0
    def bin_at(self, i):
        # addressing -- note that bin_at(0) does not exist
        #  (mbinptr) (((char *) &((m)->bins[((i) - 1) * 2]))
        #	     - offsetof (struct malloc_chunk, fd))

        ptr = self.field('bins')[(i - 1) * 2]
        #print '001', ptr
        ptr = ptr.address
        #print '002', ptr
        ptr = ptr.cast(type_char_ptr)
        #print '003', ptr
        ptr -= offsetof('struct malloc_chunk', 'fd')
        #print '004', ptr
        ptr = ptr.cast(MBinPtr.gdb_type())
        #print '005', ptr
        return MBinPtr(ptr)