Forum aux Questions sur le débogage d’instantané dans Visual StudioFrequently Asked Questions for snapshot debugging in Visual Studio

Voici une liste de questions qui s’affiche lors du débogage d’applications Azure en production à l’aide du débogueur de capture instantanée.Here is a list of questions that might come up when debugging live Azure applications using the Snapshot Debugger.

Qu’est le coût de performances d’un instantané ?What is the performance cost of taking a snapshot?

Lorsque le débogueur d’instantané capture un instantané de votre application, il est bifurcation du processus de l’application et la suspension de la copie dupliquée.When the Snapshot Debugger captures a snapshot of your app, it is forking the app's process and suspending the forked copy. Lorsque vous déboguez un instantané, vous déboguez contre la copie dupliquée du processus.When you debug a snapshot, you are debugging against the forked copy of the process. Ce processus prend uniquement 10-20 millisecondes, mais ne copie pas le tas complet de l’application.This process takes only 10-20 milliseconds but does not copy the full heap of the app. Au lieu de cela, il copie uniquement la table des pages et définit les pages à copier lors de l’écriture.Instead, it copies only the page table and sets pages to copy on write. Si certains des objets de votre application sur la modification du segment de mémoire, les pages correspondantes sont ensuite copiés.If some of your app's objects on the heap change, their respective pages are then copied. Par conséquent, chaque capture instantanée a un moindre coût en mémoire (selon l’ordre des centaines de kilo-octets pour la plupart des applications).Each snapshot therefore has a small in-memory cost (on the order of hundreds of kilobytes for most apps).

Que se passe-t-il si j’ai un Service d’applications Azure à grande échelle (plusieurs instances de mon application) ?What happens if I have a scaled-out Azure App Service (multiple instances of my app)?

Lorsque vous avez plusieurs instances de votre application, les points d’ancrage sont appliquées à chaque instance unique.When you have multiple instances of your app, snappoints get applied to every single instance. Uniquement le premier point d’ancrage à atteindre les conditions spécifiées crée un instantané.Only the first snappoint to hit with the conditions specified creates a snapshot. Si vous avez plusieurs points d’ancrage, les instantanés suivants proviennent de l’instance qui a créé le premier instantané.If you have multiple snappoints, subsequent snapshots come from the same instance that created the first snapshot. Points de journalisation envoyé à la fenêtre Sortie affiche uniquement les messages d’une instance, tandis que les points envoyées dans les journaux d’application de journalisation envoyer des messages à partir de chaque instance de.Logpoints sent to the output window will only show messages from one instance, while logpoints sent to application logs send messages from every instance.

Comment le débogueur de capture instantanée charger des symboles ?How does the Snapshot Debugger load symbols?

Le débogueur de capture instantanée nécessite d’avoir les symboles correspondants pour votre application en locale ou déployée sur votre Azure App Service.The Snapshot Debugger requires that you have the matching symbols for your application either local or deployed to your Azure App Service. (Fichiers PDB incorporés sont actuellement pas pris en charge.) Le débogueur de capture instantanée télécharge automatiquement les symboles à partir de votre Azure App Service.(Embedded PDBs are currently not supported.) The Snapshot Debugger automatically downloads symbols from your Azure App Service. À compter de Visual Studio 2017 version 15.2, déployez également Azure App Service déploie les symboles de votre application.As of Visual Studio 2017 version 15.2, deploying to Azure App Service also deploys your app's symbols.

Le débogueur de capture instantanée fonctionne avec les versions release de mon application ?Does the Snapshot Debugger work against release builds of my application?

Oui - le débogueur de capture instantanée est prévu pour fonctionner sur les versions release.Yes - the Snapshot Debugger is intended to work against release builds. Lorsqu’un point d’ancrage est placé dans une fonction, la fonction est recompilée à une version debug, rendre débogable.When a snappoint is placed in a function, the function is recompiled back to a debug version, making it debuggable. Lorsque vous arrêtez le débogueur de capture instantanée, les fonctions sont retournées à leur version Release.When you stop the Snapshot Debugger, the functions are returned to their release build.

Points de journalisation peuvent provoquer des effets secondaires dans mon application de production ?Can logpoints cause side effects in my production application?

Les messages de journal que vous ajoutez à votre application sont non - évaluées pratiquement.No - any log messages you add to your app are evaluated virtually. Ils ne peut avoir des effets secondaires dans votre application.They cannot cause any side effects in your application. Toutefois, certaines propriétés natives peut-être pas accessibles avec les points de journalisation.However, some native properties may not be accessible with logpoints.

Le débogueur de capture instantanée fonctionne si mon serveur est sous charge ?Does the Snapshot Debugger work if my server is under load?

Oui, le débogage d’instantané peut fonctionner pour les serveurs sous charge.Yes, snapshot debugging can work for servers under load. Le débogueur d’instantané limite et ne capture pas de captures instantanées dans les situations où il existe une faible quantité de mémoire disponible sur votre serveur.The Snapshot Debugger throttles and does not capture snapshots in situations where there is a low amount of free memory on your server.

Comment désinstaller le débogueur de capture instantanée ?How do I uninstall the Snapshot Debugger?

Vous pouvez désinstaller l’extension de site du débogueur de capture instantanée sur votre Service d’application en procédant comme suit :You can uninstall the Snapshot Debugger site extension on your App Service with the following steps:

  1. Désactivez l’option de votre application de Service via Cloud Explorer dans Visual Studio ou le portail Azure.Turn off your App Service either through the Cloud Explorer in Visual Studio or Azure portal.
  2. Accédez au site de Kudu du Service de votre application (autrement dit, yourappservice. SCM. azurewebsites.net) et accédez à extensions de Site.Navigate to your App Service's Kudu site (that is, yourappservice.scm.azurewebsites.net) and navigate to Site extensions.
  3. Cliquez sur le X sur l’extension de site du débogueur de capture instantanée pour le supprimer.Click the X on the Snapshot Debugger site extension to remove it.

Voir aussiSee also

Débogage dans Visual StudioDebugging in Visual Studio
Déboguer des applications ASP.NET en production à l’aide du débogueur de capture instantanéeDebug live ASP.NET apps using the Snapshot Debugger
Problèmes connus et dépannage pour le débogage d’instantanéTroubleshooting and known issues for snapshot debugging