【问题标题】:Interactive Shell on website in djangoDjango网站上的交互式Shell
【发布时间】:2016-11-10 18:15:31
【问题描述】:

我有一个 Django 项目正在运行。我想为用户提供通过 Web 应用程序以交互方式使用 JDB 来调试应用程序。我希望用户可以发出诸如

之类的命令
stop in [function name]
next

并且他会得到回复,然后可以继续。

但是,当我使用 os.system 时,就像这样:

def AttachDebugger(pid):
    # enable port forwarding
    adb = ADB()
    adb.set_adb_path('~/Library/Android/sdk/platform-tools/adb')
    adb.forward_socket('tcp:8001', 'jdwp:' + pid)
    # attaching
    os.system('jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8001')

然后它会在后台打开一个 JDB 会话,但它会在那里冻结并且不会将控制权返回给 python 代码,除非通过 CTRL+C 停止它。有没有办法提供这样的交互式会话?

我想要的类似于这里的 GITHUB-Tutorial-Page: https://try.github.io/levels/1/challenges/1 用户可以与 JDB 实例交互的地方

提前致谢。

【问题讨论】:

    标签: django web interactive jdb


    【解决方案1】:

    我用 pexpect 模块完成了它。

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 2017-07-15
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 2012-02-26
      • 1970-01-01
      • 2016-05-29
      相关资源
      最近更新 更多