[英]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.