Ho un processo che ospita un servizio di assistenza WCF. Maneggia maniglie come pazzo secondo ProcessExplorer. Ho passato il codice e non riesco a trovare nulla di ovvio che stia causando mance trapelate.Come diagnosticare una perdita Maniglia?
Il più vicino possibile è l'elenco degli handle forniti da ProcessExplorer, ma l'utilità di ciò sembra limitata. Ci sono altri strumenti là fuori per aiutare a diagnosticare da dove proviene un handle, come tramite una traccia stack o qualcosa del genere?
EDIT
Ho il Windbg installato. Quando lo uso per elencare le maniglie, mi sta dimostrando che 914 maniglie sono di tipo "evento" -
Se prendo un paio di questi, e l'uscita utilizzando !handle x f
ottengo un risultato simile a questo per la maggior parte:
Type Event
Attributes 0
GrantedAccess 0x1f0003
HandleCount 2
PointerCount 3
Object Specific Information
Event Type Manual Reset
Event is Set
C'è un modo per approfondire ulteriormente per determinare di più sull'evento?
Visual Studio analisi del codice (o FxCop) ti dirà se non riesci a smaltire correttamente le risorse. –
John, sono curioso, perché hai postato la tua risposta come commento e non come risposta? –
Non pensavo che fosse una gran bella risposta. Speravo che qualcun altro avrebbe fatto un lavoro migliore con l'idea. –