Forum aux Questions pour la capture instantanée de débogage dans Visual StudioFrequently Asked Questions for snapshot debugging in Visual Studio

Voici une liste de questions qui se produit lors du débogage des applications Windows Azure en direct à l’aide du débogueur de l’instantané.Here is a list of questions that might come up when debugging live Azure applications using the Snapshot Debugger.

Quel est le coût de performances d’une capture instantanée ?What is the performance cost of taking a snapshot?

Lorsque le débogueur de l’instantané capture un instantané de votre application, il est bifurcation le processus d’application et la suspension de la copie comprenant des branches.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 ramifié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 ; au lieu de cela, il copie uniquement la table de la page et définit les pages à copier lors de l’écriture.This process takes only 10-20 milliseconds but does not copy the full heap of the app; 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, leurs pages respectives 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 instantané a un coût en mémoire très petit (de l’ordre des centaines de kilo-octets pour la plupart des applications).Each snapshot therefore has a very 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, snappoints appliqués à chaque instance unique.When you have multiple instances of your app, snappoints get applied to every single instance. Uniquement la première snappoint atteint aux 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 snappoints, instantanés suivantes 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. Logpoints envoyé à la fenêtre sortie affichera uniquement les messages à partir d’une seule instance, tandis que logpoints envoyés pour les journaux des applications envoyer des messages à partir de chaque instance.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 l’instantané de charger des symboles ?How does the Snapshot Debugger load symbols?

Le débogueur de l’instantané nécessite que vous avez les symboles correspondants pour votre application soit localement ou déployé votre service d’application Azure (fichiers PDB incorporées est actuellement pas pris en charge).The Snapshot Debugger requires that you have the matching symbols for your application either locally or deployed to your Azure App Service (embedded PDBs are currently not supported). Le débogueur de l’instantané télécharge automatiquement les symboles à partir de votre Service d’applications Azure.The Snapshot Debugger automatically downloads symbols from your Azure App Service. À compter de Visual Studio 2017 version 15,2, déployez également du Service d’applications Azure 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 l’instantané fonctionne par rapport aux versions release de mon application ?Does the Snapshot Debugger work against release builds of my application?

Oui - le débogueur de l’instantané est prévu pour fonctionner par rapport aux versions release.Yes - the Snapshot Debugger is intended to work against release builds. Lorsqu’un snappoint 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 l’instantané, les fonctions sont retournées à leur version Release.When you stop the Snapshot Debugger, the functions are returned to their release build.

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

Non - tous les messages de journal que vous ajoutez à votre application sont évaluées virtuellement.No - any log messages you add to your app are evaluated virtually. Ils ne peut avoir d’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 logpoints.However, some native properties may not be accessible with logpoints.

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

Oui, le débogage de l’instantané peut fonctionne pour les serveurs sous charge.Yes, snapshot debugging can work for servers under load. Le débogueur de l’instantané limite et ne capture pas les instantanés 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 l’instantané ?How do I uninstall the Snapshot Debugger?

Vous pouvez désinstaller l’extension site instantané sur votre application de Service avec les étapes suivantes :You can uninstall the Snapshot Debugger site extension on your App Service with the following steps:

  1. Désactiver le Service de votre application via l’Explorateur de Cloud 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 de votre Service d’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 l’instantané 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 direct à l’aide du débogueur de l’instantanéDebug live ASP.NET apps using the Snapshot Debugger
Problèmes connus et dépannage pour le débogage de l’instantanéTroubleshooting and known issues for snapshot debugging