调试卡死的Python进程

VS Code Python新手入门:零基础5分钟跑通代码 Python是一种广泛使用的通用编程语言,其开发环境配置常成为初学者的第一道门槛。VS Code凭借轻量启动、智能提示、终端深度整合与可视化操作等特性,将‘写代码→运行→看结果’的闭环压缩至5分钟内。它基于Language Server Protocol(LSP)实现毫秒级代码补全,通过统一解释器配置根治ModuleNotFoundError,并以Shell Integration确保实时输出与虚拟环境感知。在教学实践与工程落地中,VS Code已成为事实上的Python入门默认工具,尤其适配学生党、转行者 阅读详情

有时线上程序运行过程中出现卡死(阻塞),无法通过断点或log找到问题,需通过其他方式调试。本文基于CentOS 7。

通用调试方法

查看进程号:
ps auxf

查看此进程卡在哪个系统回调:

strace -p pid

pid替换为实际进程号。此命令会返回一个系统回调和文件操作符。

检查上一条命令系统回调的文件操作符的含义:

ls -l /proc/pid/fd

数字就是文件操作符。

/proc/pid 中还包含其他很多进程信息,有兴趣可自行研究。

列出此进程当前的文件操作:

lsof -p pid

查看卡死的Python代码

如果想直接看到进程卡死在哪行代码可以使用gdb。

阿里云默认源无debuginfo, 需添加源地址:

sudo vim /etc/yum.repos.d/CentOS-Debug.repo

#Debug Info
[debug]
name=CentOS-$releasever - DebugInfo
baseurl=http://debuginfo.centos.org/$releasever/$basearch/
gpgcheck=0
enabled=1
protect=1
priority=1

sudo yum install gdb
sudo yum install yum-utils
sudo debuginfo-install glibc
sudo yum install python-debuginfo

进入gdb环境:

gdb python *pid*

显示当前进程执行位置:

py-list

显示当前执行位置的调用栈:

py-bt

参考资料:

DebuggingWithGdb
用strace查找进程卡死原因
centos7 安装 debuginfo
使用 gdb 调试运行中的 Python 进程
通过/PROC查看LINUX内核态调用栈来定位卡死问题

别再让J-LINK和Keil MDK 5.39打架了!手把手教你搞定编译器和驱动冲突(附Arm Compiler 5安装包) 本文详细解析了Keil MDK 5.39与Arm Compiler 5/6的兼容性问题,提供了从编译器配置到J-LINK调试器优化的完整解决方案。针对编译卡死等常见问题,给出了安装Arm Compiler 5的详细步骤和调试技巧,帮助开发者高效解决工具链冲突,提升嵌入式开发效率。 阅读详情

相关推荐

Windows下搭建EDK2开发环境的完整指南与避坑手册

UEFI固件开发是嵌入式底层技术的核心环节,其构建基础依赖EDK2这一官方参考实现。EDK2并非普通应用框架,而是面向裸机运行的固件编译系统,需深度协同Visual Studio工具链、Python构建脚本及Windows原生API。在工程实践中,Windows平台因OEM/ODM主流工作环境、JTAG调试器兼容性及VS IntelliSense对宏展开的优异支持,成为不可替代的开发载体。本文聚焦Windows原生构建路径,解析VS2022版本锁定、Python虚拟环境隔离、WORKSPACE路径规范、to

weixin_33827590的博客 441

怎么看python程序卡在哪里_程序卡住了?教你如何调试已在运行的程序

假设一个服务器上运行了下面这样的 test.py 程序,我们怎样才能知道程序是否在正常运行,运行到哪一步了呢?importtimedefdo(x):time.sleep(10)defmain():forxinrange(10000):do(x)if__name__=='__main__':main()这个程序既没有日志也没有 print 输出,通过查看日志文件/标准输出/标准错误...

weixin_39725873的博客 3840

Windows用户态程序高效排错实战指南:WinDbg/ProcMon/API Monitor协同诊断

Windows用户态程序调试是桌面应用与中间件开发的核心能力,其本质是在受限权限、无源码、缺符号的生产环境中,快速定位崩溃、卡顿、泄漏等异常根因。原理上依赖对EIP/ESP/EBP寄存器语义、堆栈帧结构、ALPC/LPC通信机制及符号加载链路的精准理解;技术价值在于将模糊现象(如‘程序无响应’)转化为确定性事实(如‘线程阻塞在NtRequestWaitReplyPort,依赖服务已停止’),显著压缩平均故障修复时间。典型应用场景涵盖minidump分析、GDI资源泄漏追踪、Release版逆向定位及客户现场

天下无双 427

python多进程卡死问题排查

由于一些原因,打算把点云算法的三维重建和定位打到一个docker镜像里面,统一对外提供服务接口。 算法嘛,需要加载比较大的模型文件,使用多核CPU,使用GPU等资源,因此一开始是打算使用多进程的方式去响应接口请求。 然后就有问题了,启动子进程去三维重建,直接卡死。。

铁柱的博客 4845

Windows可直接运行的Flask+Vue留言板,含数据库、部署指南和实测截图

一套在Windows 10/11上已验证能直接跑起来的轻量级留言板系统,后端用Flask写,前端用Vue做界面,留言提交、列表展示、单条删除都支持。项目自带SQLite数据库文件(data.db),目录结构清晰:app里放路由和业务逻辑,templates管页面渲染,static存前端资源,models.py定义数据表,forms.py处理表单校验,errors.py统一捕获异常。所有配置集中在settings.py,SECRET_KEY和DB路径改两行就能换环境。附带requirements.txt和Pi

u0v1w2x3的博客 191

全志T113s3主线linux开发(0)--基础准备

嵌入式Linux设备的启动大概是三步:1)启动芯片+内存:常见的是Uboot,不过全志的Uboot主线对SPI NAND 不太友好,用TF卡就方便。对于T113S芯片,推荐使用Awboot,简陋但快速。开发阶段用这个就方便好多,对SPINAND支持也方便。2)启动linux内核:主线内核以下通篇都用6.13以上的内核。对比tina5.0还在用5.4 ,主要是性能、安全上有变化。6.0以上内核在devicetree的编写具体格式上有了变化,网上大量tina5.0和5.4内核的编写方式不适用。

2301_79234138的博客 2247

python堆栈跟踪_关于调试:从卡住的python进程中获取堆栈跟踪

我必须运行一个传统的Zope2网站,并对它有一些不满。最大的问题是,有时它只是锁定,以100%的CPU负载运行,不再响应请求。虽然这个问题在常规的基础上是不可复制的,但是一个包含3个动态图的页面有时会触发它,所以我怀疑某种竞争条件会导致一个无止境的循环或一个卡住的busywait。问题是,我还没有找到调试这个东西的方法。Zope日志中没有任何内容,系统日志中也没有任何内容。我尝试了这个问题的建议来...

weixin_39537298的博客 673

基于PLC的冲压件自动生产线电气系统设计【附数据】

考虑到生产线的高效运行和维护简便性,选择了三菱FX系列的可编程逻辑控制器(PLC)作为核心控制单元,该型号的PLC因其高可靠性和强大的功能集,在工业自动化领域有着广泛的应用。最后,在完成初步的软件开发后,进行了多轮次的模拟测试和现场调试,逐步修正了存在的问题,最终达到了预期的功能要求。例如,对于进料环节,选用了光电传感器以精确检测物料的位置;此外,为了适应不同尺寸的工件加工需求,还特别设计了一套可调节的夹具系统,不仅提高了生产线的灵活性,同时也降低了更换模具的成本。✅ 感恩科研路上每一位志同道合的伙伴!

lagougongzuoshi的博客 1291

python使用技巧(三十一):一行代码清理你的linux运行程序后死机或卡顿的情况

python里gc.collect()命令可以回收没有被使用的空间,但是这个命令还会返回一个数值,是清除掉的垃圾变量的个数。

源代码杀手的博客 602

ENVI5.6 Seamless Mosaic多景影像镶嵌色差问题

多景影像无缝镶嵌色差问题拟解决方法

Matchaya的博客 7703

基于smart_rtmp直播,最简单的部署手册

版本号 添加内容 修改时间 V1.0 新建 2021年12月30日 V1.1 增加网页播放 2021年12月31日 V1.2 增加是否可以多流和测试数据 2022年1月5日 目录 一、软件储备 1.推流软件:OBS 2.服务器流媒体软件:smart_rtmp 3.播放软件:Pot...

qq_28768477的博客 1万+

【Linux】程序卡死、失败位置|pstack和starce看进程调用|分析耗时函数

1、strace -p [进程号] strace -p 1002297 strace: Process 1002297 attached futex(0x7fcbb95f3f84, FUTEX_WAIT_PRIVATE, 1, NULL 可以看到死在了futex(0x7fcbb95f3f84, FUTEX_WAIT_PRIVATE, 1, NULL

我的笔记本 1万+

工程经验分享:PCIE(1)

本文介绍AXI Bridge For Pcie Express Gen3 Subsystem 的使用方法。这个IP兼具简单与实用性,将PCIE协议层实现于内部,仅留出AXI接口供开发者使用。开发者不需要处理复杂的PCIE协议数据,只需要对AXI总线有所了解即可,十分符合Xilinx一贯的开发风格。本文无关PCIE协议本身,仅分享实用性的工程经验,以PCIE IP为核心,一步一步搭建一个简单的子系统,以此说明用法。文中所有内容均已通过项目检验。

weixin_42415266的博客 3842

最新用strace查找进程卡死原因_strace查找问题(1),想搞定大厂面试官

【代码】最新用strace查找进程卡死原因_strace查找问题(1),想搞定大厂面试官。

2401_84563254的博客 498

UE5实战:如何用Mesh Shader优化你的游戏场景渲染(附性能对比)

本文深入探讨了在UE5中利用Mesh Shader优化游戏场景渲染的实战方法。通过对比传统渲染管线与GPU Driven Pipeline,详细阐述了Mesh Shader如何通过任务着色器和网格着色器两阶段并行处理,实现更精细的meshlet级剔除,从而显著降低Draw Call和GPU带宽,提升渲染性能。文章附有具体的性能对比数据与代码示例,为开发者优化高复杂度场景提供了有效路径。

sunny的博客 296

【WRF-GHG 教程第一期】概述(Overview)

概述(Overview)

WW、forever的博客 508

VSCode Python多进程与多线程调试:参数配置及断点实战

在Python并发开发中,多线程与多进程程序执行流程复杂,单靠print和命令行调试难以定位问题。调试器(如debugpy)通过与运行中进程建立调试通道,将线程和进程的执行状态实时呈现,为工程排查提供关键支撑。VSCode作为主流IDE,提供了统一的调试面板,搭配launch.json可灵活配置程序参数、工作目录与环境变量,让带参启动与断点管理变得直观高效。无论是处理线程切换、条件断点,还是应对多进程的spawn/fork差异,合理的配置都能显著降低定位成本。从调试原理出发,结合工程实践,系统梳理VSCod

weixin_28829325的博客 235

SAP 合并报表(EC-CS)完整方法论 + 全业务操作步骤

SAP合并报表(EC-CS)方法论与操作指南摘要 SAP EC-CS模块提供完整的集团合并解决方案,其核心方法论基于会计准则和集团管控逻辑,通过6大维度构建标准化合并体系:组织架构标准化、数据采集标准化、外币换算规则化、内部交易自动化抵消、股权与商誉规范化、报表出具灵活化。 实施过程分为两个阶段: 上线前配置阶段(12个步骤):包括合并架构搭建、科目表配置、外币规则设定、抵消规则定义等基础工作 日常操作阶段(10个步骤):涵盖数据报送、外币换算、内部对账、自动抵消、调整分录等月结流程 系统优势包括: 支持多

金牌架构师 1364

深入解析进程管理:从原理到实践

进程是操作系统进行资源分配的基本单位,理解其工作原理对系统开发和性能优化至关重要。进程管理涉及内存分配、状态转换和调度算法等核心技术,通过PCB(进程控制块)实现精细控制。现代系统中,进程隔离和通信机制(如共享内存、管道)直接影响应用性能。随着容器化和微服务架构的普及,进程管理在云原生环境中展现出新的技术形态,如Docker通过namespace实现视图隔离,Kubernetes则抽象出Pod作为部署单元。掌握进程调度策略和IPC机制,能有效解决僵尸进程、资源竞争等典型问题,提升系统稳定性。

weixin_33725515的博客 462

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python开发环境Wing IDE调试进程异常报告

Wing IDE的调试器所报告的任何异常,都会在调试器以外的任何代码运行事件中展示出来。 通过使用Debug工具或者是Debug菜单中的Start / Continue继续调试过程的异常检测。 Wing IDE将会停止在PrintAsHTML中的错误代码行,并会在Exceptions工具中报错: 注意,这个工具凸显了当前堆栈框架,你可以点击框架导航例外回溯。发生任何异常时,Wing ID

u011872919的专栏 915

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Bmob Python SDK 标签关键词复合查询与搜索性能优化实战

后端即服务(BaaS)让中小型项目无需自建服务器即可快速上线,但随着数据量增长,模糊查询和标签筛选的性能瓶颈逐渐显现。在内容检索场景中,合理设计数据表结构(如数组标签、短文本搜索字段)、利用正则表达式实现关键词匹配,并通过索引、字段裁剪、结果缓存等手段进行全链路优化,是提升响应速度的关键。结合 Python SDK 开发实践经验,针对标签+关键词的复合查询,从建表规划、查询编写到性能调优给出系统性方案,帮助开发者在零服务器成本下构建高可用的搜索体验。

weixin_34166472的博客 364

具身智能入门:从树莓派小车到感知-决策-执行闭环

具身智能是AI与物理世界交互的进阶形态,核心在于感知、决策、执行与学习构成的持续闭环。与静态AI不同,它必须处理传感器噪声、硬件延迟和真实环境的不确定性,这也是许多原型系统落入“死亡谷”的根因。工程实践中,系统集成与鲁棒性往往比单点算法更关键。对于初学者,仿真环境能低成本验证逻辑,但真机才是暴露问题的试金石。一辆搭载树莓派的桌面小车,是搭建最小具身智能系统的理想载体:通过摄像头识别目标、生成控制信号、驱动电机完成跟随任务,再结合数据清洗和真机排查,即可完整走通从概念到落地的链路。ROS2、OpenCV、Py

weixin_34364071的博客 330

PyCharm中Hunyuan-MT 7B开发环境完美配置

本文介绍了如何在星图GPU平台上自动化部署Hunyuan-MT 7B 全能翻译镜像,实现高效、稳定的多语言机器翻译功能。用户可快速构建生产级翻译环境,适用于跨境电商商品描述本地化、技术文档实时中英互译等典型场景,显著提升国际化内容处理效率。

weixin_42599558的博客 247

Trellis Channel 进度调试实战指南:从截断的 progress 到卡死的 worker

Trellis 的本地多 Agent 协作运行时代码在通道(channel)中把每个事件以 JSON 形式落盘到 `events.jsonl`,但不同的阅读者需要完全不同的视图:操作者要的是紧凑可读的 pretty 输出,排障者要的是逐行精确的 `--raw` 审计视图。本文以 Trellis 官方进度调试手册为主体(原文档位于 [.claude/skills/trellis-channel/re

gitblog_00035的博客 429

pycharm调试时出现十分缓慢,变量数据没法预览的解决方法

file->settings->Build,Execution,Deployment->Python Debugger->Gevent compatible

u012483097的博客 4208

让 OfficeCLI 认识 .doc、.pdf、.hwp:3 类插件一次讲清楚

OfficeCLI 是第一个为 AI 代理打造的办公套件,本身只认 `.docx`、`.xlsx`、`.pptx` 三种"普通话"格式。可现实中,你手里往往攥着一份老 `.doc`、一张要交出去的 `.pdf`、或一份韩国同事发来的 `.hwpx`。这些"外语文件"靠 OfficeCLI 插件就能被读懂、转写和导出——插件就是挂在主程序旁边的独立小程序,专门补格式短板。 [![OfficeCLI

gitblog_00113的博客 459
上一篇: Python2 异步网络请求库比较
下一篇: 如何向PyPi(pip)提交模块
XXERR
博客等级 码龄14年 44粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值