博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
远程debug调试(eclipse)之openstack windows
阅读量:4183 次
发布时间:2019-05-26

本文共 1428 字,大约阅读时间需要 4 分钟。






















源调试代码中加入远程debug代码:

1、将安装有pydev插件的eclipse的文件夹搜索到
pydevd.py文件,复制到目标主机的python路径下。

eclipse/plugins/org.python.pydev_x.x.x/pysrc/pydevd.py 







vim /usr/lib/python2.7/site-packages/pysrc.pth

测试import pydevd

vim /usr/lib/python2.7/site-packages/nova/compute/api.py

此处发现eclipse并没有进入到get_all 断点调试的代码处,而是保存没有改pid进程,这是因为nova底层代码 使用的eventlet多线程(协程)导致,解决此问题参考如下:
grep -rn 'eventlet.monkey_patch' /usr/lib/python2.6/site-packages/nova
 
vim /usr/lib/python2.6/site-packages/nova/cmd/__init__.py
import eventlet from nova import debugger if debugger.enabled():    # turn off thread patching to enable the remote debugger    eventlet.monkey_patch(os=False, thread=False) else:    eventlet.monkey_patch(os=False)
替换为:
import eventlet from nova import debugger if debugger.enabled():    # turn off thread patching to enable the remote debugger    eventlet.monkey_patch(os=False, thread=False) else:   eventlet.monkey_patch(os=False, thread=False)
注:由于上述步骤中,将多线程关闭了,所以之后如果涉及到多线程协作流程(例如一次性创建多个虚拟机),将可能出现错误。

在控制节点执行:nova list 则会自动远程debug到eclipse中:





配置windows下的python2.7:
下载2.7版本的windows版本安装:


如果上述情况大家调试不通,建议先使用一个简单的test文件来测试好远程debug,再来调试nova的上述代码:


vim test_eclipse_pydevd.py
print "I'm test eclipse remote debug python start" 
import pydevd
pydevd.settrace(host='192.168.1.18', port=5678, stdoutToServer=True, stderrToServer=True)
a = 3
b = 4
c = a + b
print "I'm test eclipse remote debug python end!!!"







你可能感兴趣的文章
Directory家族的层级分布图
查看>>
我们为什么应该坚持写博客
查看>>
因为多个jar可能记录日志信息时,日志模块,不知道需要用那个jar包
查看>>
Lucene里面支持join操作
查看>>
solr 4.2的入门配置
查看>>
shell脚本一键安装solr
查看>>
solr原子更新功能
查看>>
greenplum + pgsql和Hadoop+hive+hbase
查看>>
cpu,硬盘,内存
查看>>
Elasticsearch 合理内存分配
查看>>
elasticsearch 与 hive集成
查看>>
ElasticSearch 2 的节点调优(ElasticSearch性能)
查看>>
Elasticsearch与hadoop比较
查看>>
raid5
查看>>
eclipse中调试solr
查看>>
solr有关Pig0.12.0和Solr4.10.2
查看>>
建议使用Solr或ElasticSearch这样的封装了
查看>>
图形数据库Neo4J简介
查看>>
JDBC 连接 带实例名的SQL Server
查看>>
mysql多实例的配置和管理
查看>>