sublimegdb.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:SublimeRemoteGDB 作者: summerwinter 项目源码 文件源码
def update_values(self):
        if not self.should_update():
            return
        dirtylist = []
        if self.values is None:
            names = self.get_names()
            vals = self.get_values()
            self.values = []

            for i in range(len(vals)):
                idx = int(vals[i]["number"])
                self.values.append(GDBRegister(names[idx], idx, vals[i]["value"]))
        else:
            dirtylist = regs = parse_result_line(run_cmd("-data-list-changed-registers", True))["changed-registers"]
            regvals = parse_result_line(run_cmd("-data-list-register-values x %s" % " ".join(regs), True))["register-values"]
            for i in range(len(regs)):
                reg = int(regvals[i]["number"])
                if reg < len(self.values):
                    self.values[reg].set_value(regvals[i]["value"])
        pos = self.get_view().viewport_position()
        self.clear()
        line = 0
        for item in self.values:
            output, line = item.format(line)
            self.add_line(output)
        self.set_viewport_position(pos)
        self.update()
        regions = []
        v = self.get_view()
        for dirty in dirtylist:
            i = int(dirty)
            if i >= len(self.values):
                continue
            region = v.full_line(v.text_point(self.values[i].line, 0))
            if self.values[i].lines > 1:
                region = region.cover(v.full_line(v.text_point(self.values[i].line + self.values[i].lines - 1, 0)))

            regions.append(region)
        v.add_regions("sublimegdb.dirtyregisters", regions,
                        get_setting("changed_variable_scope", "entity.name.class"),
                        get_setting("changed_variable_icon", ""),
                        sublime.DRAW_OUTLINED)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号