Pycharm调试器综述

本文介绍了PyCharm调试器的使用,包括不同类型的断点(行断点、有条件断点、异常断点)、step by step调试模式以及各种调试窗口的功能,如inline变量值查看、Evaluate Expression、Variables、Watchs和Frames,帮助开发者更高效地进行代码调试。

场景

  • “代码有没有跑到这里呀,加个print看看,这里也加个print呢,那里也加个print呢。调试完了还得把print语句删掉”
  • “为啥这个地方循环没跑进去呢”
  • “Django接口返回hello world的时候发生了什么”
  • “调试过程中,有个超复杂的dict,我想看里面的某个key,不方便看”

说白了,调试器比print的好处在于,调试器可以用丰富的姿势来跟踪代码,暗中观察,且不污染代码

当调试时忍不住想要加print的时候,先想想用调试器是不是更好

断点

代码跑到断点的时候停下。不包含断点所在那行代码。即断点那行代码尚未执行。

在pycharm中可以直接拖动断点。

行断点

有条件的行断点

当断点满足某个条件的时候才停下。

异常断点

当代码出现某个异常的时候自动停下。不用自己手动打断点。

step by step

step over —— 遇到函数不会跳进去,而是平躺过去
step into —— 遇到函数跳进去
step out —— 从函数里面跳出来。即跳到上一级。
step into my code —— 忽略库代码,只在业务代码跳
run to cursor —— 代码执行到光标所在的那行

窗口

inline显示变量值

直接在代码旁边显示变量值

Evaluate Expression

可以即时求值。

不但可以运行表达式,还可以切换到代码片段模式,运行代码片段。

Variables

观察当前所有变量值

当一个函数返回时,还会显示返回值Return Values

Watchs

可以添加想要观察的变量

注: watchs可以合在variables窗口里面一起显示,不需要单独的watchs窗口。
再注: 可观察的不止是变量,还可以是表达式,比如a+b;甚至可以是代码片段,比如import json; tmp = json.laods(ret)

Frames

函数的调用栈。可上下移动。可选择某个thread。

<think>好的,我现在需要帮用户解决PyCharm调试器报错的问题。用户提到的报错可能有多种情况,比如“pydev debugger: process xxxx is connecting”或者“Couldn't refresh skeletons for remote interpreter”,所以得先确定用户遇到的具体错误类型。 首先,根据用户提供的引用,引用[1]提到报错可能是因为首行的input语句,或者需要调整Python Debugger设置中的PyQt compatible选项。这可能适用于本地调试的情况。需要建议用户检查代码首行是否有input,并尝试修改设置。 然后是引用[3],关于远程调试时出现的问题,解决方法包括删除服务器上的.pycharm_helpers目录并重新添加解释器。如果用户在使用远程解释器,可能需要执行这些步骤。 另外,用户可能遇到包安装错误,引用[2]建议更换Python版本,但这里主要针对调试问题,可能需要检查Python环境是否兼容PyCharm版本,或者是否有冲突的库。 接下来,我需要整理这些解决方案,分步骤说明,确保结构清晰。可能分为本地调试问题和远程调试问题两部分。同时,提醒用户检查代码、调试配置,以及清理缓存等通用方法。 还要注意用户可能尝试过某些方法无效,比如调整Debugger设置无效,因此需要提供替代方案,例如重新配置解释器或重启PyCharm。同时,确保每个步骤都简明易懂,避免技术术语过多,方便用户操作。 最后,生成相关问题,覆盖常见错误类型,比如远程调试、断点失效、包安装问题等,这样用户如果有其他相关疑问可以继续参考。</think>### PyCharm调试器报错解决方案分步指南 根据报错类型,解决方案可分为本地调试和远程调试两类: #### 一、本地调试常见错误处理(以"pydev debugger"报错为例) 1. **检查首行代码** - 若代码首行包含`input()`语句,尝试将其移至代码中间位置[^1] - 示例问题代码: ```python input() # 错误位置 def test(): print("调试测试") ``` 2. **修改调试器设置** - `File -> Settings -> Build,Execution,Deployment -> Debugger` - 勾选`PyQt compatible`选项(适用于GUI程序调试) - 取消勾选`Gevent compatible`(若未使用协程框架) 3. **清理缓存** - 执行`File -> Invalidate Caches... -> Invalidate and Restart` #### 二、远程调试错误处理("Couldn't refresh skeletons"报错) 1. **服务器端清理** ```bash rm -rf /home/your_username/.pycharm_helpers # 替换实际用户名 ``` 2. **重建解释器连接** - `File -> Settings -> Project:xxx -> Python Interpreter` - 点击⚙图标选择`Show All...` - 删除旧解释器后重新添加 #### 三、通用处理流程 1. **环境验证** - 检查Python版本与PyCharm兼容性(推荐使用Python 3.6+) - 验证调试配置: ```python # 测试用例 def debug_test(): breakpoint() # Python 3.7+语法 print("调试点触发") ``` 2. **依赖检查** - 在Terminal执行: ```bash pip list | grep pydevd ``` - 应有`pydevd-pycharm`包且版本与PyCharm匹配 #### 四、特殊场景处理 当遇到`Process finished with exit code -1073741819 (0xC0000005)`错误时: 1. 关闭杀毒软件实时防护 2. 检查CUDA版本与PyTorch/TensorFlow的兼容性 3. 使用虚拟环境重建依赖: ```bash python -m venv fresh_env source fresh_env/bin/activate pip install --upgrade pip ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值