在Eclipse/PyDev中向运行进程发送SIGUSR1信号遇帧选择问题求助
Eclipse/PyDev调试中发送SIGUSR1信号及帧选择问题解决
一、解决「选择帧」的步骤
- 打开Eclipse的Debug视图(默认在底部面板,若没显示可通过
Window > Show View > Debug调出)。 - 在Debug面板里找到你正在调试的目标Python进程,展开其下的线程列表。
- 选中线程下任意一个处于运行状态的栈帧(通常是列表最上方的那个),此时控制台会自动关联到该帧的上下文。
二、发送SIGUSR1信号的可行方式
1. 系统终端发送(推荐)
- 先获取目标进程PID:可在Debug面板的进程名称旁看到,或用系统命令
ps aux | grep python查找。 - 在终端执行命令发送信号:
注:Windows系统无SIGUSR1信号,可使用Process Explorer等工具发送对应信号,或替换为Windows支持的信号(如SIGBREAK)。kill -USR1 <目标PID>
2. 代码内自动触发
若仅用于测试,可在目标应用代码中添加自动发送信号的逻辑,无需手动操作控制台:
import os import signal # 在合适的位置(如断点恢复后)添加 os.kill(os.getpid(), signal.SIGUSR1)
3. 关联帧后用Eclipse控制台发送
按「选择帧」步骤绑定上下文后,在控制台依次执行:
import os import signal os.kill(<目标PID>, signal.SIGUSR1)
内容的提问来源于stack exchange,提问作者dnessett
相关产品推荐
相关产品推荐

