2010-05-06 31 views
6

Come estensione la domanda "Modify/view static variables while debugging in Eclipse", mi piacerebbe essere in grado di modificare variabili statiche durante il debug in Eclipse.Modifica variabili statiche durante il debug in Eclipse

Per esempio e variabili locali, posso semplicemente scegliere la variabile nella vista "Variabili" di Eclipse e utilizzare il menu di scelta rapida "Modifica valore ..." per modificare il valore.

Questo non è possibile per variabili statiche arbitrarie, perché non appaiono nella vista "Variabili".

Quello che ho cercato:

  1. Se si sceglie "Java/Mostra variabili statiche" dal menu triangolo nella vista "variabili", è possibile visualizzare e modificare le variabili membro statiche delle variabili elencati nella sezione " Vista variabili ". Tuttavia, non ho trovato come accedere a un membro statico di una classe la cui istanza non appare nella "vista Variabili".
  2. Ovviamente è possibile inserire un membro statico come espressione nella "visualizzazione dell'espressione" (utilizzando il nome completo). Quindi è possibile visualizzare il valore, ma la "visualizzazione dell'espressione" non ha un'opzione per modificare il valore (è fa consentire di modificare i membri di un'espressione, ma non l'espressione stessa, anche se l'espressione è un campo).

Quindi, se ho una variabile statica come un MyClass.disableAllBugs booleane, c'è un modo per cambiare MyClass.disableAllBugs durante il debug?

Per inciso: mi rendo conto che anche avere campi statici mutabili pubblici (cioè variabili globali mutabili) è uno stile molto negativo. Ma alcune basi di codici ce l'hanno, e quindi a volte è utile modificarlo mentre si esegue il debug.

risposta

6

È possibile scrivere una linea temporanea SomeClass.myStaticVar = newValue;, selezionarla, fare clic con il pulsante destro del mouse e "eseguirla".

+0

Bel trucco. A volte lo faccio per invocare manualmente i metodi durante il debug (ad esempio printStackTrace() per un'eccezione). Comunque non ci ho pensato in questo contesto. – sleske

+0

E se fosse un campo statico privato allora? – RAY

+0

@RAY Volevo solo confermare che questo funzioni anche per i campi statici privati. – nerdherd

Problemi correlati