繁体   English   中英

Ida Pro 6.9崩溃

[英]Ida Pro 6.9 crash

我正在为Ida(使用python)编写一个插件,该插件利用了Etcd远程键值存储系统。 我的问题是,当我尝试锁定服务器时

        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死机了,我想知道是否有人对为什么发生或如何解决有任何见解。

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

idaapi.add_hotkey('Ctrl-.', self.push_data)

毫无疑问,是导致问题的锁。

您可以在https://github.com/jplana/python-etcd查看python-etcd源

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

要列出/_locks/ida_lock下的文件:

etcdctl ls /_locks/ida_lock

要从中拯救自己,请运行:

etcdctl rm /_locks/ida_lock --dir --recursive

为了避免这种情况,您可以在finally块中运行lock.release() ,就好像您不释放它一样, /_locks/ida_lock下将保留一个文件。
此外,您可以添加一些日志记录配置(您可以在此处参考)以在处理此类问题时进行更多挖掘。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM