首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ida Pro 6.9坠机

Ida Pro 6.9坠机
EN

Stack Overflow用户
提问于 2016-06-23 15:37:08
回答 1查看 497关注 0票数 0

我正在为Ida编写一个插件(在python中),它使用Etcd远程密钥值存储系统。我的问题是当我试图获得服务器上的锁时

代码语言:javascript
复制
        lock = etcd.Lock(self.client, 'ida_lock')
        Should timeout after 30 seconds. Hopefully that is enough.
        lock.acquire(blocking=True,lock_ttl=None,timeout=30)
        if lock.is_acquired:

            data,idc_file = self.get_idc_data()

            if os.path.isfile('expendable.idc'):
                self.client.write('/fREd/' + self.md5 + '/all/', idc_file, prevValue = open('expendable.idc','r').readlines())
            else:
                self.client.write('/fREd/' + self.md5 + '/all/', idc_file)
        lock.release()

就像这样,Ida冻结了,我想知道是否有人对为什么会发生这种情况或如何解决它有任何洞察力。

因此,作为参考,包含此内容的方法通过键盘快捷方式调用。

代码语言:javascript
复制
idaapi.add_hotkey('Ctrl-.', self.push_data)

毫无疑问,是锁造成了问题。

您可以查看https://github.com/jplana/python-etcd上的python源代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-27 20:41:02

/_locks/ida_lock**.**目录下已经存在密钥

列出/_locks/ida_lock下的文件

代码语言:javascript
复制
etcdctl ls /_locks/ida_lock

要想摆脱这种状况,你可以跑:

代码语言:javascript
复制
etcdctl rm /_locks/ida_lock --dir --recursive

为了避免这种情况,您可以在lock.release()块中运行finally,就好像您没有发布一样,/_locks/ida_lock下面将保留一个文件。

此外,您还可以添加一些日志信任(可以参考here),以便在处理此类问题时挖掘更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37996086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档