django网站上的Interactive Shell

时间:2016-11-10 18:15:32

标签: django web interactive jdb

我有一个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实例交互的位置

提前致谢。

1 个答案:

答案 0 :(得分:0)

我用pexpect模块完成了它。