Openstack 远程调试 - pycharm
2016-04-25 01:01
405 查看
转自 http://blog.csdn.net/tantexian/article/details/38295385 环境:windows7、pycharm3.4.1、centos6.5(部署openstack icehource版)1、在windows机器安装pycharm将windows pycharm安装目录下的pycharm-debug.egg拷贝到centos机器(如果centos的python为3版本以上,则拷贝pycharm-debug-py3k.egg):在centos6.5安装debug egg:
2、配置windows pycharm的远程调试配置(Run -> Edit configurations...):注:其中Local host name为:windows本机当前ip地址。port为:当前pycharm用来监听远程debug连接的端口。(其中path mapping可以先不用设置)3、pycharm启动远程debug监听远程调试:点击右上角出现的刚刚配置的debug:下面窗口将出现:
接下来以nova的get_all实例为例调试:
添加上述内容后api代码如下:
注:由于上述步骤中,将多线程关闭了,所以之后如果涉及到多线程协作流程(例如一次性创建多个虚拟机),将可能出现错误。
easy_install pycharm-debug.egg |
4、将Waiting for connection...上面的两句代码copy到对应断点调试代码中:
import pydevd pydevd.settrace('192.168.1.133', port=51234, stdoutToServer=True, stderrToServer=True) |
vim /usr/lib/python2.6/site-packages/nova/compute/api.py |
5、重启nova服务nova-api、nova-compute,执行:nova list命令,或者dashboard点击获取instance的页签:
远程debug连接到pycharm,进入了调试模式。
6、此处发现pycharm并没有进入到get_all 断点调试的代码处,而是进入了thread.py的线程文件,这是因为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 |
将
|
安装之前步骤,重启服务nova-api、nova-compute,nova list 即可以看到正常的调试代码:补充:pycharm可以将本机代码和远程代码进行映射(Edit Path Mapping),就不用每次去远程下载远程:补充、如果还是不能正常调试,请将pycharm安装文件内容替换:
将:
|
相关文章推荐
- apache commons fileupload 团队
- Linux之文件的查找
- Linux下的格式化字符串漏洞利用姿势
- Linux学习日志(一)
- C3P0的详细配置说明(com.mchange.v2.c3p0.ComboPooledDataSource)
- 一些不太常用的Linux命令
- centos下的安装JDK1.7
- Linux常用命令(三)
- 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布
- shell 笔记
- linux下maven的安装配置
- 10个常用Linux系统ps命令实战
- list.pop
- Linux C++ 开发简介
- hadoop 学习之(一)搭建环境
- 二次安装Apache
- Dubbo架构设计详解
- 银河娱乐集团:Docker使用过程中的经验
- ZABBIX 监控 LINUX Nginx
- 比较Linux系统下shell编程与c语言编程的异同_Shell编程与C语言编程的相同点_两者的差异