2011-03-14 11 views
5

di tanto in tanto sono infestato da "org.eclipse.swt.SWTError: Niente più handle". Conosco già strumenti come GDIView, per vedere il numero di maniglie assegnate, ma ora mi chiedo se c'è un modo migliore per farlo.SWT - Come eseguire il debug "Niente più handle"

C'è uno strumento disponibile? Forse uno che registra tutti gli stacktraces quando vengono creati gli handle? E che mostra le nuove maniglie tra due punti di invocazione?

saluti, Daniel

PS: aggiunta la tag finestre perché dev occures principalmente sulle finestre e una finestra unico strumento sarebbe abbastanza buono.

+0

Questa domanda potrebbe essere correlata alla tua richiesta: http://stackoverflow.com/questions/164776/overcoming-windows-user-object-handle-limit – Zoot

+0

@Zoot: Sembra che lavori sui sintomi, non sul causa. Sto solo cercando le vere perdite, non ho davvero bisogno di molte maniglie. È solo che nel tempo ci sono troppe risorse utilizzate. Usando la fessura, ero persino in grado di cercare risorse ricreate. Il debugging rende anche la mia app più veloce in RDP. – Daniel

risposta

3

Ho scoperto circa Sleak, un ottimo strumento per eseguire il debug di risorse SWT! Altamente raccomandato per tutti con gli stessi problemi. Mostra anche le immagini per le risorse di immagine!

0

Per me il problema era semplicemente che la nuova Shell() è stata chiamata troppo spesso. Memorizzare la shell come membro statico e riutilizzarla ha aiutato. Pertanto, prima di applicare uno strumento come Sleak, altri potrebbero voler eseguire una ricerca full text per "nuova shell" e verificare che non abbiano la stessa semplice causa.