Ejemplo n.º 1
0
    def to_string(self):
        func_id = self.val['m_funcID']
        if func_id == -1:
            return '<invalid SrcKey>'

        func = nameof(lookup_func(func_id))
        offset = self.val['m_offset']

        rmp = self.val['m_resumeModeAndPrologue']
        resume = prologue = ''
        if rmp == 0:
            # ResumeMode::None
            pass
        elif rmp == 1:
            resume = 'ra'
        elif rmp == 2:
            resume = 'rg'
        elif rmp == 3:
            prologue = 'p'

        return '%s@%d%s%s' % (func, offset, resume, prologue)
Ejemplo n.º 2
0
    def to_string(self):
        func_id = self.val['m_s']['m_funcID']
        # Complicated cast to overcome "Invalid type combination in equality test"
        if int(func_id.cast(gdb.lookup_type('uint32'))) == -1:
            return '<invalid SrcKey>'

        func = nameof(lookup_func(func_id))
        offset = self.val['m_s']['m_offset']

        rmp = self.val['m_s']['m_resumeModeAndTags']
        resume = prologue = ''
        if rmp == 0:
            # ResumeMode::None
            pass
        elif rmp == 1:
            resume = 'ra'
        elif rmp == 2:
            resume = 'rg'
        elif rmp == 3:
            prologue = 'p'

        return '%s@%d%s%s' % (func, offset, resume, prologue)
Ejemplo n.º 3
0
    def to_string(self):
        func_id = self.val['m_funcID']
        if func_id == -1:
            return '<invalid SrcKey>'

        func = nameof(lookup_func(func_id))
        offset = self.val['m_offset']
        this = 't' if self.val['m_hasThis'] else ''

        rmp = self.val['m_resumeModeAndPrologue']
        resume = prologue = ''
        if rmp == 0:
            # ResumeMode::None
            pass
        elif rmp == 1:
            resume = 'ra'
        elif rmp == 2:
            resume = 'rg'
        elif rmp == 3:
            prologue = 'p'

        return '%s@%d%s%s%s' % (func, offset, resume, this, prologue)