Perché DebugView non mostra i messaggi di debug quando Visual Studio lo fa
-
22-07-2019 - |
Domanda
Sto sviluppando un Browser Helper Object in esecuzione all'interno di Internet Explorer. Sto scrivendo messaggi di debug con ATLTRACE (" ... ");
Questi appaiono bene quando Visual Studio è collegato al processo iexplore.exe
, ma questo è lento per un test rapido. DebugView non cattura nulla dal mio BHO.
Perché DebugView non mostra i messaggi di debug di BHO? Ha a che fare con Internet Explorer che funziona a basso livello di integrità?
Soluzione
Supponendo che si stia eseguendo IE su Vista o versioni successive (come sembra dal momento che si parla di livelli di integrità), è possibile impostare il livello di integrità di DebugView su un'integrità inferiore in modo che qualsiasi applicazione possa inviargli messaggi:
icacls dbgview.exe /setintegritylevel low
E se non ti piace l'idea di impostare permanentemente dbgview su bassa integrità (potrebbe rendere i registri di salvataggio e un po 'una seccatura, dato che andranno solo nel negozio a bassa integrità) puoi eseguire un particolare istanza di dbgview a bassa integrità utilizzando lo strumento psexec
di Sysinternals:
psexec -l dbgview
Infine, se tutto ciò che ti preoccupa è la quantità di tempo necessaria per caricare il debugger VS per collegarti al processo, puoi utilizzare un debugger da riga di comando (come ntsd.exe o cdb.exe). Ntsd.exe viene fornito con Windows, ma una versione più recente viene fornita con gli " Strumenti di debug per Windows " pacchetto , che include anche cdb.exe molto simile.
Altri suggerimenti
Per i tuoi test rapidi, Visual Studio è ancora in esecuzione? In tal caso, ciò potrebbe causare questo problema.