Ändern Sie den Inhalt der Debug-Ansicht in Eclipse

8

Ich schreibe ein Java-Framework, für eine Klassendatei, sample.class, generiert es eine Proxy-Datei sample_proxy.class. Wenn sample.testMethod () aufgerufen wird, wird sample_proxy.class aufgerufen. Ich mache bereits ein Eclipse-Plugin, damit der Breakpoint funktioniert.

Wenn ich von Main.java aus starte und einen Haltepunkt in sample.testMethod () setze, sieht der folgende Stack so aus: Main.main - & gt; sample.proxy_method - & gt; sample_proxy.testMethod.
  Gibt es eine Möglichkeit den Proxy zu ingore wie: Main.main - & gt; sample.testMethod?

    
nzomkxia 19.07.2015, 12:36
quelle

1 Antwort

0

Was Sie tun möchten, ist möglich, aber ein bisschen komplizierter. Zunächst einmal gibt es keine Möglichkeit, den StackTrace eines laufenden Programms zu ändern. Also Thread.currentThread().getStackTrace() ist nicht der richtige Weg.

  

Ich schreibe ein Java-Framework für eine Klassendatei, sample.class, it   generiert eine Proxy-Datei sample_proxy.class.

Wenn Sie das tun, müssen Sie die aufgerufene Methode inline einbinden, anstatt sie einfach aufzurufen. Das ist eine nicht-triviale Technik, die auch von ProGuard verwendet wird. Sie werden feststellen, dass es verschiedene Arten von Inlining macht. Am meisten interessiert könnten Sie in der Funktionalität von "Inlining Short Methods" sein.

Ich schlage vor, Sie kopieren es aus dem Code dort. Ich würde beginnen, Ссылка

Beachten Sie jedoch, dass hierzu grundlegendes Wissen über die JVM selbst erforderlich ist. Es wird also kein einfaches Code-Snippet geben, das in dem von Ihnen erwarteten Kontext funktioniert.

Ich hoffe, es hilft.

    
Kenyakorn Ketsombut 04.09.2015 08:50
quelle

Tags und Links