2016-11-10 4 views
2

J'ai un projet Django opérationnel. J'aimerais proposer à un utilisateur d'utiliser interactivement JDB via l'application Web pour déboguer une application. Je veux que l'utilisateur peut émettre une commande telle queInteractive Shell sur le site Web dans django

stop in [function name] 
next 

Et qu'il obtiendrait le retour de la réponse, puis peut procéder.

Quand j'utilise os.system cependant, comme ceci:

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') 

il ouvre une session JDB en arrière-plan, mais il gèle et il ne retourne pas le contrôle du code python, sauf l'arrêter via CTRL + C. Y a-t-il un moyen de fournir une telle session interactive?

Ce que je voudrais avoir est similaire à la GitHub-Cours-page ici: https://try.github.io/levels/1/challenges/1 où l'utilisateur peut interagir avec l'instance JDB

Merci à l'avance.

Répondre

0

Je l'ai fait avec le module pexpect.