2009-02-22 18 views
6

Voglio solo passare al mio programma con Visual Studio 2005, ma quando provo a copiare ciò che mi ha mostrato il mio insegnante (kinda), comincio a passare attraverso altri file che appaiono spontaneamente nella mia finestra. Si chiamano cose a caso come "xstring" e "ios" e sono davvero frustrato. Per favore, come faccio a scorrere il mio codice?Debug di Visual Studio: voglio solo passare al mio programma!

+0

Modifica la tua domanda per dare un esempio breve e completo di un metodo che stai cercando di passare, e indica quale dichiarazione ti sta portando inaspettatamente nel codice STL. – ChrisW

+2

Come qualcuno che ha lo stesso problema, io dovrò elaborare: nel corso del passaggio a una singola istruzione, si registrano spesso chiamate STL, chiamate del costruttore, nuove chiamate dell'operatore, ecc. Lungo la strada verso la funzione in cui si desidera effettivamente entrare. Come tale, sarebbe bello avere un modo per dire al debugger di passare automaticamente qualsiasi cosa dalle singole funzioni alle funzioni in un particolare modulo o di una particolare classe, anche quando si usa Step Into. – Stewart

risposta

-1

http://mark.michaelis.net/Blog/VisualStudioKeyboardShortcutsWrapupMSDNFlashFeb22009.aspx

Fondamentalmente parlando si dovrebbe utilizzare F10 (step-over) e non F11 (step-in), quando attuale linea di codice contiene chiamata alla non la funzione.

+0

Ho provato! Questo fa cose strane! –

+2

Ma questo farà un passo in avanti su alcune delle funzioni che l'utente VUOLE fare. Molte istruzioni C++ contengono una combinazione di chiamate di libreria e chiamate a funzioni che fanno effettivamente parte del programma. – Stewart

1

Molto probabilmente quello che sta accadendo è che stai entrando in metodi integrati nel framework. Quando ciò accade, fai clic su "Esci" e tornerai nel tuo codice personale.

È anche possibile utilizzare "passaggio" per i metodi che si conoscono integrati, ovviamente rischiando di scavalcare i metodi in cui si desidera intervenire.

La mia raccomandazione è di assicurarsi di posizionare i punti di interruzione su ogni riga in cui si desidera controllare lo stato dell'applicazione - in questo modo è sufficiente utilizzare il pulsante di riproduzione (F5).

5

Perché sta accadendo: stai utilizzando oggetti dalla libreria di modelli standard. Alcune delle tue affermazioni stanno invocando esplicitamente o implicitamente metodi di queste classi STL. Stai entrando in questi metodi con il tuo debugger.

Ci sono due modi per risolvere questo:

  • Se sai che sei in uno statment che richiama un metodo STL, quindi scegliere il debugger "Step Over" di comando (F10) invece del suo Comando "Step Into" (F11).

  • Se si accede a uno di questi metodi per errore, utilizzare il comando "Esci" (Maiusc-F11) del debugger.

+0

Sto provando a testare quali valori vengono assegnati alle variabili in una sezione, e mi sembra di entrare in questi metodi STL lì ... e sono troppo un principiante per capire cosa sta succedendo. –

+0

Come soluzione, usa "Esci" (Shift-F11) se ti trovi in ​​uno di questi metodi. Se è una consolazione, questo è un problema ben noto (non è solo per te). – ChrisW

7

Il modo migliore per evitare di passare a tali metodi è impostare le regole NoStepInto nel Registro di sistema. Controlla this blog post per esattamente come farlo.

Se si vuole evitare tutta la libreria standard, basta impostare la seguente regola:

10 std\:\:.*=NoStepInto 

per Visual Studio 2005 è necessario aggiungere la regola alla seguente chiave

HKLM\Software\Microsoft\VisualStudio\8.0\NativeDE\StepOver

Problemi correlati