Vscode,pudb远程调试服务器中的程序
Vscode远程调试服务器中的程序
VScode可以远程调试服务器中的代码,应该适合更多的人。
请参考:成功解决 vscode远程调试python
请注意第三步的时候,如果你的端口号不是默认22,就需要重新设置,点击下图的齿轮,出现config文件。
然后增添Port <你的端口号> 就好了。Host 可以改成你的服务器的名字。
还有重要的一点上面的链接没有指出来,就是第五步之后要进行代码调试的话,需要按照下图设置:
也可参考:VS Code进行Python远程调试
自己遇到的问题:
- 连上了服务器,也打开了服务器中的文件,但是不能加断点,就是点代码前面不会出现红点。这是因为python扩展没有安装好,在扩展中搜索python,然后安装,稍微久一点。
- python没有办法利用ctrl+左键跳转,安装扩展Pylance,进入设置(左下角小齿轮),python:language server改成pylance就可以了,如果不行可以重启试试。
- 调试的时候总是报错:time out waiting for launcher,参考这里把console改为internalConsole,默认的是integratedTerminal,而且网上很多的博客都是设定的默认,目前不知道为什么,但是改了确实好了。
- 如果要用到ptvsd,注意launch.json的host后的ip地址要带上双引号。
pudb远程调试服务器中的程序
目录
- Vscode远程调试服务器中的程序
- pudb远程调试服务器中的程序
- 前言
- 一、pudb能干什么?
- 1. 优点
- 2. 缺点
- 二、建议什么样的人使用pudb?
- 三、具体使用方法
- 1.安装与使用
- 2. 偏好调整
- 3. 调试中会用到的操作
- 4. 可能遇到的问题
- 总结
- 参考链接
前言
最近在写代码,但是对于刚入门不久的编程小白,服务器上的代码不能调试真是太痛苦了。之前用过pycharm调试,但是因为要设置环境,mapping什么的,运行代码一多,环境比较多的时候,总是出问题,而且tensorflow出问题更多。幸好在大佬的指点下,我知道了pudb能远程调试,而且它本身不需要下额外的软件,只需要pip装一个包就好,然后你就有一个类似于matlab的调试界面了。
一、pudb能干什么?
pudb是全屏的基于控制台的可视化调试器。
- 可设置断点,解决了服务器难以调试的问题,和pycharm的本地调试断点一样。
- 基于键盘,简单高效。为什么说高效呢?因为它支持VI的鼠标移动。
- 支持查找源代码,可以使用m代用module browser查看载入的模块。
- 可以进入调用模块的源代码,适用于一些框架比较大,结构比较复杂的代码。
1. 优点
- 不会遇到mapping之类的问题,只要相应的环境配置好,就可以调试,比较稳定
- 界面简单,满足日常调试需求
2. 缺点
- 全程用键盘操作,一开始会有点不太适应
- 不能用鼠标,不能使用类似于Ctrl+左键的模块的索引方式
- 不能直接编辑代码,可以配合pycharm之类的工具编辑代码。所以两个屏更方便。
二、建议什么样的人使用pudb?
- 需要用服务器调试代码
- python入门者
三、具体使用方法
准备工作:使用pycharm把环境映射好,也就是setting里面设置好。并且点上自动upload的选项。这样pycahrm里改完之后,服务器更新了,Xshell这边重新开启调试也会修改。
1.安装与使用
安装:pip install pudb
使用:python -m pudb.run main.py
或者 pudb main.py(这个我用了会有问题)
2. 偏好调整
第一次使用的界面是这样的:
嗯。。。看过都说丑的界面。先把它换成我们熟悉的配色:点击ctrl+p,然后光标往下移,看到Theme,然后把光标移到midnight,点enter。就换成我们熟悉的配色。再加上页码,在General部分,光标移到show line numbers, 点enter。
配色换好之后我们再来看组成,由五个部分组成,代码,命令行,变量模块,运行模块,以及断点模块。对于日常调试这些就够了,剩下的使用键盘操作就可以,鼠标在这里就没有什么作用啦。
3. 调试中会用到的操作
更换光标所在模块:利用键盘的上下左右键转换光标所在的模块,从【代码】-【命令行】使用ctrl+x进行更换。或者大写模式下,按:V - 移到变量部分,S - 移到运行模块部分, B - 移到断点部分, C - 移到代码部分;
设置和删除断点:将光标放到所在行,按b,注意是小写;再按一次b就删除断点了
编辑断点:聚焦到断点部分,光标放到要编辑的断点处,按e
运行到下一行:n
运行到下一个断点处:t
进入调用的模块的源代码:s
运行完当前函数并跳出:r/f
查看变量:聚焦到变量部分,想看哪个变量,enter就行
进入终端:o
跳出终端回到调试界面:enter
终止代码:q
翻页:pagedown 和 pageup,或Ctrl+u/d
跳转到首行/末行 g/G - start/end
跳到指定行 L
查找:/ ,之后按下进入代码部分,,/.分别进行上一个/下一个查找
窗口分布调整:shift + -/+
这些就是我最近使用pudb调试经常使用的操作。如果你有其他的需要,按shift+?就可以看到所有的指令。下面是其他博主翻译的,可以作为参考:
Welcome to PuDB, the Python Urwid debugger.
------------------------------------------- (This help screen is scrollable. Hit Page Down to see more.) Keys: # 快捷键相关Ctrl-p - edit preferences # 编辑配置n - step over ("next") # 运行到下一行 s - step into # 运行进函数c - continue # 继续运行r/f - finish current function # 结束当前函数t - run to cursor # 运行到光标处e - show traceback [post-mortem or in exception state] # 显示tracebackH - move to current line (bottom of stack) # 移动到当前行(栈底)u - move up one stack frame # 移动到栈的上一行d - move down one stack frame # 移动到栈的下一行o - show console/output screen # 显示命令行屏幕(回车返回pudb)b - toggle breakpoint # 打断点/取消断点m - open module # 打开python模块j/k - up/down # 上/下Ctrl-u/d - page up/down # 上一页/下一页h/l - scroll left/right # 左滚动/右滚动g/G - start/end # 跳转到首行/末行L - show (file/line) location / go to line # 跳到指定行/ - search # 查找,/. - search next/previous # 查找下一个/上一个V - focus variables # 聚焦在变量窗口S - focus stack # 聚焦在栈窗口B - focus breakpoint list # 聚焦在断点列表窗口C - focus code # 聚焦在代码窗口f1/?/H - show this help screen # 显示帮助窗口q - quit # 退出Ctrl-c - when in continue mode, break back to PuDB # 当处于连续模式时,返回pudbCtrl-l - redraw screen # 重绘窗口Command line-related: # 命令行相关! - invoke configured python command line in current environment # 进入命令行窗口Ctrl-x - toggle inline command line focus # 切换命令行窗口和代码窗口+/- - grow/shrink inline command line (active in command line history) # 增长/缩减命令行(命令行历史下激活)_/= - minimize/maximize inline command line (active in command line history)# 最小化/最大化命令行(命令行历史下激活)Ctrl-v - insert newline # 插入新行Ctrl-n/p - browse command line history # 浏览命令行历史Tab - yes, there is (simple) tab completion # 快速补齐Sidebar-related (active in sidebar): # 工具栏相关(工具栏激活时有效)+/- - grow/shrink sidebar # 扩大/缩减工具栏(指的是工具栏宽度)_/= - minimize/maximize sidebar # 最小化/最大化工具栏[/] - grow/shrink relative size of active sidebar box # 扩大/缩减激活工具栏相对大小(指的是窗口高度)Keys in variables list: # 变量列表窗口的快捷键\ - expand/collapse # 展开/收缩t/r/s/c - show type/repr/str/custom for this variable # 切换type/repr/str/customh - toggle highlighting # 切换高亮@ - toggle repetition at top # 切换顶部重复* - cycle attribute visibility: public/_private/__dunder__ # 属性的循环可视化m - toggle method visibility # 切换方法的可见性w - toggle line wrapping # 切换换行n/insert - add new watch expression # 添加新的watch表达式enter - edit options (also to delete) # 编辑选项Keys in stack list: # 栈列表窗口的快捷键enter - jump to frame # 跳到某帧Keys in breakpoints view: # 断点列表窗口的快捷键enter - edit breakpoint # 编辑断点d - delete breakpoint # 删除断点e - enable/disable breakpoint # 启用/禁用断点
4. 可能遇到的问题
- q->restart之后代码看起来更新了,但是有可能实际没有更新。这时候需要q->quit才管用,不然没有更新。这个问题我遇到了很多次。
总结
本文介绍了如何使用pudb对服务器中的代码进行调试。它的优点在于稳定性和界面简洁,所以推荐大家使用。
参考链接
pudb使用指南
[笔记]Python的调试器pudb简易教程
xshell+xftp破解版下载安装以及使用教程
Vscode,pudb远程调试服务器中的程序相关推荐
- intellij远程调试_IntelliJ中的远程调试Wildfly应用程序
intellij远程调试 远程调试Java应用程序意味着使用本地开发环境连接到远程运行的应用程序. Java开箱即-agentlib:jdwp[=options]支持远程调试:目标应用程序必须使用-a ...
- win10+Xming+Xshell显示远程linux服务器的图形程序窗口
Xshell的安装: Xshell的下载与使用 - 知乎 Xming的安装 1. 在bing页面搜索Xming,进入官网 2. 直接download 3. 下载完毕,点开安装包,直接按默认设置一路点击 ...
- 【调试】——idea远程调试服务器上的代码
前提 有些时候难免会出现一些线上问题,可能就需要远程调试服务器上的代码,依次快速定位错误代码,进行改正.小编最近通过idea进行了远程代码调试,特此记录一下,希望可以帮需要的朋友. 步骤 1.保证本机 ...
- vscode初次远程连接服务器报错解决
1.错误: vscode初次远程连接服务器无法连接成功报错,并弹框提示[关闭][更多操作][重试],这说明网络无法安装vscode-server服务. 2.解决办法: (1) 查看自己vscode的 ...
- Windows下如何使用VScode连接远程linux服务器进行远程开发
Windows下如何使用VScode连接远程linux服务器进行远程开发 1. 先上手-成功连接 1.vscode下载安装所需插件:vscode中的remote-ssh插件 安装之后,就会出现上图黄色 ...
- 利用NAnt取得远程VSS服务器中的文件并且编译
source:http://www.cnblogs.com/coolbug/archive/2004/07/21/26211.html 利用NAnt取得远程VSS服务器中的文件并且编译 利用NAnt取 ...
- vscode连接远程Linux服务器失败
vscode连接远程Linux服务器失败 文章目录 vscode连接远程Linux服务器失败 解决连接失败 设置密钥免密登录 解决连接失败 问题 vscode会不断的提示你去输入密码,然后一直retr ...
- IDEA远程调试服务器代码
先在idea添加一个remote,host填服务器ip,port填监听服务器端口,默认5005 然后在服务器tomcat catalina.sh 添加(红色部分): JAVA_OPTS="$ ...
- java远程调试服务器的工程配置
废话就不多说了,干技术的 直接上干货.. 用tomcat做案例讲解. 保证服务器和客户端的代码一致性. 我的例子服务器是window的. 第一步: 在tomcat bin目录下 创建文件, sta ...
最新文章
- osx java 6_OSX 10.11 java 6不兼容怎么办?OSX 10.11 java 6不兼容解决办法
- 【好程序员笔记分享】——UIView与CALayer详解
- 使用windowManager实现音乐播放器(悬浮框)效果
- 32位JDK和64位JDK
- Win32下 Qt与Lua交互使用(二):在Lua脚本中使用Qt类
- c++远征之多态篇——虚函数及其实现原理
- 图文讲解5G调制,特别通俗易懂!
- js change事件 获取新值和旧值_前端总结(JS篇)
- html点击文字展开图片,DIV CSS鼠标经过悬停在图片上时图片上方显示文字
- linux nload_Linux nload命令
- pdf类型转换器打印机
- 便宜又大碗!AI将画廊轻松搬到自家墙壁;用隐写术在图像中存储文件;免费书·算法高维鲁棒统计;关节式手部模型数据集;前沿论文 | ShowMeAI资讯日报
- linux多线程实验实验报告,Linux多线程实验.ppt
- 微信小程序地图点聚合
- Origin技巧:两个柱状图竖向重叠怎么办?
- C++多线程/互斥锁/条件变量/信号量思维很重要;设计线程安全队列;1114按序打印;1115交替打印FooBar;1116打印零与奇偶数;1117H2O 生成1195交替打印字符串1226哲学家进餐
- 数据库期末考试(考点以及相关概念整理)
- 什么是开环控制?什么是闭环控制?它们有什么区别?
- 移动端多页面APP(MPA)开发体验
- word换pdf并且自动生成目录