Sono ancora un novizio relativo con C++ e ho riscontrato un problema con la DLL di terze parti a cui sto collegando staticamente dalla mia DLL C++ nativa. Sto usando Visual Studio 2012 per il debug della mia DLL.Cosa può WinDbg dirmi che Visual Studio non può?
(FWIW, la DLL di terze parti è di Sybase Open Client, e sto debug il mio DLL tramite un C# eseguibile che ho scritto, che carica il mio DLL C++ in modo dinamico.)
ho usato visiva Studio per passare allo smontaggio e guardare i registri e l'utilizzo della memoria per la DLL di terze parti. Visual Studio mi ha fornito molte buone informazioni su cosa sta succedendo nel mio processo ma sento che potrebbe esserci più di quello che sto vedendo, e forse un modo più semplice o più efficiente per arrivarci.
Ho letto che WinDbg è uno strumento molto potente, ma richiede molto tempo e impegno per imparare ad usarlo bene. La mia domanda è: vale la pena di imparare a usare WinDbg, o gli strumenti di debug in Visual Studio mi daranno praticamente le stesse informazioni?
Prova a camminare gli heap di Windows nel debugger di Visual Studio a volte. Quindi, in effetti, * riesce * a farlo con WinDbg. – WhozCraig
Lo script WinDbg è arcano come la sua sintassi può essere potente rispetto a ciò che VS consente, anche se forse con un addin o una macro è possibile ottenere funzionalità simili in VS. – 0xC0000022L
Rilevazione perdite di memoria, analisi automatica degli arresti anomali, gestione tracciamento perdite, ricerca memoria, possibilità di scaricare pile di chiamate di tutti i thread facilmente, set/unset breakpoint quando vengono colpiti i breakpoint, debug su macchine che non hanno installato VS, .net debugging, logging, scriptable, supporta loop ... ecc. Fondamentalmente quello che ottieni è un debugger leggero, privo di BS che ha tonnellate di strumenti che automatizzano attività dolorose che sono difficili o impossibili usando VS, il più alto riconoscimento che vedrai è che MS usa questo per eseguire il debug di Windows, curva di apprendimento ripida ma in definitiva molto gratificante. – EdChum