2016-06-29 18 views
1

Das Stackdriver-Debug-Interface klagt, wenn Sie in Ihrer Quelle eine Nicht-Java-Datei haben (z. B. eine Groovy-Datei).Verwenden von Stackdriver debug für Java-fremde JVM-Sprachen

Die Art, wie ein Debugger normalerweise funktioniert, ist, dass er einen Dateinamen und eine Zeilennummer mit den Quelldatei- und Zeilennummernattributen in der Klassendatei übereinstimmt. Daher weiß ich nicht, warum die Unterstützung für Nicht-Java-Quelldateien deaktiviert wurde.

Hat irgendjemand Glück gehabt, die Schnittstelle in das Akzeptieren von Nicht-Java-Dateien zu "tricksen" (z. B. durch Umbenennen) oder Informationen darüber, ob Google Unterstützung hinzufügen möchte?

Antwort

2

Diese Einschränkung ist im Stackdriver Debugger Java-Agent fest codiert. Siehe https://github.com/GoogleCloudPlatform/cloud-debug-java/blob/master/src/agent/internals/src/main/java/com/google/devtools/cdbg/debuglets/java/ClassPathLookup.java#L186

Der Grund für die Einschränkung ist, dass der Agent für Java erstellt wurde. Es versteht Java-Bedingungen und -Ausdrücke (und versteht keine anderen Sprachausdrücke). Der Agent kann mit relativ wenigen Änderungen so geändert werden, dass er mit anderen JVM-Sprachen umgehen kann. Die Datei: lines stimmt jedoch weitgehend mit den Informationen in den Klassendateien überein, und der Ausdrucksparser wurde so geändert, dass er der Zielsprache entspricht.

+0

Schade, eine solche willkürliche Einschränkung zu sehen, Java-Bedingungen und Ausdrücke zum Debuggen von Scale-, Groovy-, Clojure-, usw. Code zu verwenden wäre vollkommen gesund, und jede halbwegs vernünftige JVM-Sprache spuckt Klassen mit korrekten Zeilennummernattributen aus. – thoutbeckers

+0

Dies wäre ein Ausgangspunkt, um zu sehen, ob Sie die Plattform tricksen können (Sie müssten nur die Klassenattribute und Dateien in einem Zweig Ihres Repos umbenennen). Ich kann sehen, warum Google keinen pauschalen Support für jede Sprache wünschen würde, aber hoffentlich werden sie testen, ob die populären JVM-Sprachen eines Tages richtig funktionieren könnten. – thoutbeckers

+0

Zufällig https://github.com/GoogleCloudPlatform/cloud-debug-java/comitt/aacb0d0348d6f6202e20908f5cac020fb30b6d2b scheint unter https://github.com/GoogleCloudPlatform/cloud-debug-java/blob/master/src einen ungültigen Code erstellt zu haben. agent/internals/src/main/java/com/google/devtools/cdbg/debuglets/java/ClassPathLookup.java # L191 – thoutbeckers