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)
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)
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)