【问题标题】:How to debug hanging python code when I can't use PDB无法使用 PDB 时如何调试挂起的 python 代码
【发布时间】:2020-06-20 04:42:36
【问题描述】:

我有一些代码可以在我的本地系统上完美运行。只有当我启动它以作为服务器上的 docker 容器化程序自动运行时,它才会在特定行挂起并超时。我无法在该特定环境中使用 pdb 单步执行该程序,也无法在可以使用调试器的环境中重现该行为。我可以在我的 cloudwatch 日志中看到它停止在那条线上并超时。

挂起的那行代码正在调用其他代码,但我在内部不知道它挂起的确切位置。有什么方法可以在这行代码周围包装一些东西,让它打印出它经历的每一步吗?

(作为参考,实际服务器是一个 AWS SageMaker 端点,不能通过 ssh 或其他任何方式直接访问,而超时的代码行是 AutoGluon model.predict() 调用。)

我想我正在寻找的可能是调试装饰器之类的东西,或者是一种自动化 pdb 并将其包装在函数调用中以查看其挂起位置的方法。或任何更好的建议。

【问题讨论】:

    标签: python debugging remote-debugging


    【解决方案1】:

    也许您可以结合远程 pdb 进行 sagemaker 本地会话。 https://pypi.org/project/remote-pdb/ 你需要本地会话,这样你就可以轻松进入容器,然后 remote-pdb 让你连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 2023-03-27
      • 2019-01-11
      相关资源
      最近更新 更多