SSH连接公司服务器时pdb.set_trace()触发Segmentation fault问题求助
解决SSH连接服务器时pdb触发Segmentation Fault的问题
检查本地终端的TERM环境变量
终端环境不兼容是常见诱因。先在本地Mac终端执行echo $TERM,如果输出是xterm-256color这类较新的终端类型,试试在SSH连接时强制设置兼容的TERM值:ssh -t your_username@server_address "TERM=xterm python your_script.py"或者连接服务器后先执行
export TERM=xterm,再运行脚本。升级或重装服务器上的pdb/Python
服务器上的pdb模块可能损坏,或者当前Python版本存在pdb相关的bug。执行以下命令升级pdb:pip3 install --upgrade pdb也可以切换到同事正在使用的Python版本测试,看是否能解决问题。
确保SSH连接分配了伪终端
pdb是交互式调试工具,需要伪终端支持。不要用-T参数禁用伪终端,反而用-t强制分配:ssh -t your_username@server_address连接后再运行脚本。
测试本地运行排除环境问题
把脚本复制到本地Mac上直接运行,如果正常,说明问题集中在SSH终端交互的兼容性上,重点排查前面的TERM设置和终端转发。临时替换为其他调试工具
如果以上方法都无效,试试用ipdb替代pdb,先安装:pip3 install ipdb然后把代码里的
pdb.set_trace()替换成:import ipdb; ipdb.set_trace()多数情况下ipdb的兼容性更好,不会触发这类崩溃。
内容的提问来源于stack exchange,提问作者Antonio Nappi
相关产品推荐
相关产品推荐

