shmemBase_attach beim Herstellen einer Verbindung mit Android-Gerät fehlgeschlagen

Ich versuche, jdb auf meinem Computer mit einem Prozess (wirklich jedem Prozess) auf meinem Android-Gerät zu verbinden, aber das funktioniert überhaupt nicht.

Die von mir verwendeten Befehle stammen direkt aus der Google ADB-Dokumentation. Zuerst mache ich

adb forward tcp:3456 jdwp:pid

Dann versuche ich, jdb zu verwenden, um zu versuchen, @ anzuschließ

jdb -attach emulatorIP:3456

Aber ich erhalte den folgenden Fehler:

java.io.IOException: shmemBase_attach failed: The system cannot find the file specified

    at com.sun.tools.jdi.SharedMemoryTransportService.attach0(Native Method)
    at com.sun.tools.jdi.SharedMemoryTransportService.attach(SharedMemoryTransportService.java:108)
    at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:116)
    at com.sun.tools.jdi.SharedMemoryAttachingConnector.attach(SharedMemoryAttachingConnector.java:63)
    at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)
    at com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)
    at com.sun.tools.example.debug.tty.Env.init(Env.java:63)
    at com.sun.tools.example.debug.tty.TTY.main(TTY.java:1066)

Fatal error: 
Unable to attach to target VM.

EDIT: Ich habe mehr Leads, aber ich bin weit von einer tatsächlichen Lösung entfernt.

JDB -attach verwendet aus irgendeinem Grund standardmäßig die Shared-Memory-Methode, obwohl in der Dokumentation die Angabe von hostname: port als -attach-Parameter vorgeschrieben ist, dass Sockets für das Remote-Debugging verwendet werden. Um es zu erzwingen, verwenden Sie den Befehl, der von ykws Antwort bereitgestellt wird, aber er schlägt trotzdem scheinbar aufgrund eines Verbindungsfehlers fehl.

Nach weiteren Untersuchungen scheint es, dass JDB und ADB auf einer unbekannten Ressource miteinander in Konflikt stehen und die verschiedenen Socket-Verbindungsfehler verursachen. Meine derzeitige Problemumgehung besteht darin, ADB vollständig herunterzufahren und JDB auszuführen. Wenn ich mit der JDB fertig bin, wird die ADB wieder online geschaltet. Auf keinen Fall akzeptabel, und ich hoffe, dies hilft jemandem mit einem tieferen Wissen, herauszufinden, was los ist!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage