python-3.x - 为什么 Python 3 上的 pdb 会忽略我的 CTRL+C 而只显示“--KeyboardInterrupt--”
问题描述
在pdb
Python 2 中,我可以 CTRL-C 并退出我的 Python 程序。
在 Python 3.6 下我不这样做,只是显示--KeyboardInterrupt--并忽略我。为了退出,我需要 CTRL-D,但如果我“做太多”,这也会终止我的 bash 会话。
我可以恢复 CTRL+C 行为吗?
Python 3.6,macOS Sierra。
解决方案
我仍然有同样的行为。也许这是我的环境中的一个小故障,但否则我看不到明确忽略用户使用 CTRL+C 终止程序的请求的好处。
但是,我发现点击 '<strong>q' 会触发pdb quit,这主要会导致所需的结果,即程序终止。而且,与 CTRL+D 不同,它也没有关闭启动 bash 会话的风险。
编辑 - 这成功了
(我有用于捕获异常的代码,这就是为什么一个简单的 q/quit 被命中或错过的原因)
根据有没有办法防止从 sys.exit() 引发的 SystemExit 异常被捕获?
:注意它关于没有运行清理代码的警告
# ~/.pdbrc
alias qq import os; os._exit(1)
推荐阅读
- theory - 理解 Coq 中“有根据的”证明
- gradle-kotlin-dsl - 将 sourceDir 添加到 java sourceSet
- jenkins - 如何在 Jenkins 中使用量角器?
- python-3.x - 如何在python3多处理中保持没有“主线程”的进程?
- react-native - react native - 仅覆盖在某些组件之上
- rstudio - 无法在 Rstudio 中运行脚本
- java - java中的java.lang.NullPointerException错误
- javascript - 根据选择的单选按钮返回不同的答案
- javascript - 如何使用图像选择器?
- c# - 不能使用外键作为变量(?)