2011-01-27 6 views
9

Come eseguire il dump o cercare in pile di chiamate di TUTTI i thread in Visual Studio? Abbiamo un processo del server per il debug e centinaia di thread sono in esecuzione, quindi dovrebbe essere difficile controllare manualmente ogni thread.Come eseguire il dump o cercare in pile di chiamate di TUTTI i thread in Visual Studio

So che "thread apply" in gdb può fare questo genere di cose. Quindi mi chiedevo se ci fosse qualcosa di simile disponibile nel debugger di Visual Studio.

Inoltre stavo usando Visual Studio 2005, quindi per favore fornisci una soluzione per VS 2005 (la ricerca in tutti gli stack di chiamate è fornita in VS 2010 ...).

risposta

2

Più tardi ho trovato la risposta utilizzando WinDbg,

Prima salvare un minidump in VS sessione di debug, ad esempio, myapp.dmp

Quindi, utilizzando il seguente comando per scaricare tutto callstack a out.txt

cdb -zc: \ myapp.dmp -logo out.txt -lines -c "~ * kb; q" -yc: \ simboli

14

Ho appena avuto lo stesso problema, anche in VS2005. Ho trovato una soluzione più semplice: Durante il debug aperta la finestra di comando di VS e utilizzare il comando: Debug.ListCallStack/AllThreads

Ho trovato questo su: http://blogs.msdn.com/b/greggm/archive/2005/08/02/446899.aspx

+0

Buono, ma attenzione sembra solo per la stampa fuori discussioni con un ID gestito. Non include i thread nativi puri. – Weeble

+0

Hmmm. Penso di essermi sbagliato, ma non capisco perché non abbia stampato tutte le mie discussioni la prima volta ... – Weeble

+1

Se la tua finestra di comando è scomparsa su di te, puoi trovarla qui: 'Visualizza -> Altro Windows -> Finestra di comando ' –