Posso aggiungere un punto di interruzione su API CreateProcess di Windows in Visual Studio come posso fare in Windbg?Posso aggiungere un punto di interruzione su CreateProcess in VS
10
A
risposta
15
Sì - Go "Debug/Nuovo punto di interruzione/rottura in funzione ..." e incollare questo:
{,,kernel32.dll}[email protected]
nella casella di funzione.
Che presuppone una creazione Unicode - sostituire W
con A
per build ANSI.
Un po 'di spiegazione: pezzo @40
fa parte del stdcall convenzione di chiamata, e fornisce il numero di byte di parametri che la funzione prende. In win32, questo è quasi sempre 4 volte il numero di parametri. Anche il trattino basso fa parte della convenzione di chiamata stdcall.
una nota correlata: a volte il nome della funzione come si è visto dal debugger è diverso dal suo vero nome - vedere questo post del blog per un esempio, e come trovare il nome giusto da utilizzare: Setting a Visual Studio breakpoint on a Win32 API function in user32.dll
Problemi correlati
- 1. Come aggiungere un punto di interruzione condizionale in vb6?
- 2. Come aggiungere un punto di interruzione condizionale in Visual C++
- 3. Come aggiungere un punto di interruzione a objc_exception_throw?
- 4. Aggiungere un punto di interruzione simbolica su un selettore in Xcode
- 5. Punto di interruzione in servizio non funzionante
- 6. Punto di interruzione eccezione in Xcode
- 7. punto di interruzione condizionale in Visual Studio
- 8. Imposta punto di interruzione su ogni riga in GDB
- 9. Come impostare un punto di interruzione su tutti i tiri?
- 10. Rimuovere/aggiungere classi CSS sul punto di interruzione con matchmedia.js
- 11. Posso impostare un punto di interruzione su un codice sorgente dell'applicazione gestita quando utilizzo WinDbg?
- 12. In Intellij, come posso generare un'eccezione in corrispondenza di un punto di interruzione?
- 13. Impostazione di un punto di interruzione in GDB
- 14. Imposta un punto di interruzione in XHR in Chrome
- 15. Come si aggiunge un punto di interruzione in Xcode?
- 16. Posso impostare un punto di interruzione quando la variabile ottiene un valore specifico in .NET?
- 17. Come "impostare un punto di interruzione in malloc_error_break di debug"
- 18. Qualsiasi modo di dormire su un punto di interruzione in C#/Visual Studio?
- 19. punto di interruzione globale.asax non ha colpito
- 20. Impostare un punto di interruzione in un modello T4
- 21. PHPMailer - come posso aggiungere linee di interruzione in altbody?
- 22. Punto di interruzione condizionale GDB su tipi arbitrari
- 23. Abilita punto di interruzione B se il punto di interruzione A è stato colpito
- 24. È possibile nominare un punto di interruzione in GDB?
- 25. Come si imposta un punto di interruzione simbolico su _WebThreadLockFromAnyThread in Xcode?
- 26. pausa gdb senza punto di interruzione
- 27. Pausa Matlab senza punto di interruzione
- 28. Come posso impostare un punto di interruzione nel codice di riferimento in Visual Studio?
- 29. Interruzione su kCFStreamErrorDomainSSL
- 30. Punto di interruzione del debug in Swift Playground?
Meglio rompere su entrambi. A causa del funky comportamento non const di CreateProcessW, anche le applicazioni Unicode potrebbero chiamare CreateProcessA. La macro CreateProcess non nasconde le dichiarazioni di due funzioni sottostanti in modo che rimangano richiamabili. Questo vale anche per macro simili per altre coppie di funzioni. – MSalters
Un'altra cosa da notare è che devi prima scaricare i simboli 'kernel32.dll'. Puoi farlo dal menu di scelta rapida all'interno di Debug/Windows/Modules. – ulidtko
spiegazione della sintassi {,,,} è qui: https://msdn.microsoft.com/en-us/library/wztycb7f(v=vs.100).aspx nota che per qualsiasi motivo l'articolo non esiste per studio visivo superiore a vs2010 –