2010-05-15 5 views

Antwort

4

Nicht wirklich. Aber ich nehme an, dass es implementiert werden kann, indem auf die Debugging-Schnittstelle über eine Schnittstelle zugreift, und den Haltepunkt auf die aktuelle Klasse setzt, in der die Break() - Funktion implementiert wird. Interessante Frage jedoch.

+0

Beliebiger Beispielcode für diesen Vorschlag? –

+0

Nein, aber es sollte eine Dokumentation für diese Schnittstelle im JDK geben. – Daniel

1

Wie wäre es, eine bestimmte Ausnahme für diesen Zweck zu werfen und abzufangen und einen Ausnahme-Breakpoint in Ihrer IDE zu erstellen?

+2

Der Aufruf in C# bietet einen Debugger oder eine IDE an. Wenn ein Ausnahmeblockpoint benötigt wird, müsste die IDE bereits angehängt sein, oder? –

4

ja ich wollte so etwas, also habe ich eine ziemlich einfache Lösung aus meinen C Tagen implementiert. Dies kann nützlich sein, wenn Sie eine leichte Antwort wollen.

public class DebugHelper 
    { 

     public static breakHere() 
     { 
      int i = 0; // Set breakpoint on this line in your IDE 
     } 
    } 

Um diese Methode zu verwenden. Setzen Sie einen Haltepunkt in Ihrem Code auf dem "Int i = 0;" Linie. Und rufen Sie diese Methode im Code auf, den Sie debuggen. Es ist eine schnelle Antwort auf ein dynamisches Debugging und schneller als eine Überwachung einer Variablen.

Beispiel ...

private something(...) 
{ 
     for(...) 
     { 
      if(null == value) DebugHelper.breakHere(); 
     } 
} 

Natürlich in C, können Sie den richtigen ASM Unterbrechungspunkt-Befehl setzen ;-) Das ist für mich bei den seltenen Gelegenheiten funktioniert gut ich so etwas wie dies will.

+0

Diese Art von Lösungen wurde auch unter http://stackoverflow.com/questions/10736275/is-there-asm-nop-equivalent-in-java diskutiert –