La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

2 Et si Sherlock Holmes faisait du debugging LAN401 – Microsoft Techdays 9 février 2011 – 11h-12h Gilles Guimard Julien Crozon.

Présentations similaires


Présentation au sujet: "2 Et si Sherlock Holmes faisait du debugging LAN401 – Microsoft Techdays 9 février 2011 – 11h-12h Gilles Guimard Julien Crozon."— Transcription de la présentation:

1

2 2 Et si Sherlock Holmes faisait du debugging LAN401 – Microsoft Techdays 9 février 2011 – 11h-12h Gilles Guimard Julien Crozon

3 3 Présentation des speakers Julien Crozon Tech lead Société Générale Corporate Investment Banking Gilles Guimard Application Dev Manager Microsoft France

4 4 44 Microsoft Services: Un accompagnement global de nos clients Architecture & Planning Planification Conseil et Projets Déploiement et adoption Support Optimisation et Opération Evaluation Planification Développement Déploiement Stabilisation Opérations Support Support Premier Enterprise Strategy Consulting Services Division Services France Consultants 125 Technical Account Managers 190 Ingénieurs Support 17 Responsables de Mission 41 Partenaires référencés Division Services France Consultants 125 Technical Account Managers 190 Ingénieurs Support 17 Responsables de Mission 41 Partenaires référencés Division Services Monde pays couverts employés partenaires 44 langues parlées par nos ingénieurs Division Services Monde pays couverts employés partenaires 44 langues parlées par nos ingénieurs

5 5 55 Criticité du projet Maturité de la technologie Partenaires Notre engagement auprès de nos partenaires est : De leur assurer un transfert dexpertise, De leur apporter notre support sur les dernières technologies, De leur donner accès aux meilleures pratiques de mise en œuvre et de support. Nos clients et partenaires sont particulièrement satisfaits par… Le niveau dengagement des consultants : 94% La gestion de léquipe de projet : 92% Les compétences techniques des consultants : 91% La relation avec les équipes du client : 90% Nos clients et partenaires sont particulièrement satisfaits par… Le niveau dengagement des consultants : 94% La gestion de léquipe de projet : 92% Les compétences techniques des consultants : 91% La relation avec les équipes du client : 90% Notre positionnement est dintervenir sur les projets critiques et les technologies récentes

6 6 De quoi va-t-on parler ? De la philosophie de lenquêteur Des outils indispensables à tout détective informatique Des recettes pragmatiques pour débusquer les bugs Des crimes les plus courants

7 7 Où lon ressent le désarroi du développeur « Je comprends pas, ça marchait chez moi… » Un développeur souhaitant rester anonyme Démo

8 8

9 9 Où lon parle de bugs (et de la meilleure façon de les traquer) « …un fait hors de lordinaire est plutôt un indice quun embarras… » Sir Arthur Conan Doyle « Un bon bug est un bug mort » General Lee

10 10 Un bug est avant tout… Oui mais pourquoi faire ? Un dysfonctionnement ? Une source dennui ? La meilleure façon de rester tard le soir ? NON ! Un bug est une excellente occasion de devenir un meilleur chasseur de bug

11 11 Pour largent Un bon détective est mieux payé A des arguments lors des négociations salariales > « Si je navais pas été là… »

12 Pour la gloire Un bon détective obtient la reconnaissance de ses collègues Détenteur dune sagesse : « celui qui sait » Plus on chasse les bugs, plus on apprend à les chasser

13 13 Pour le bonheur Un bon détective est plus heureux Etant sur de ses capacités, il subit moins de stress Etant plus rapide à trouver les coupables, il rentre moins tard Vie personnelle plus épanouie

14 14

15 15 Le secret dun bon détective …ou les 9 étapes dune enquête rondement menée « Rien nest petit pour un grand esprit » Arthur Conan Doyle « Jaime quun plan se déroule sans accroc » Colonel John Hannibal

16 16 Etape 1 Se préparer Se concentrer Sassurer davoir le temps de se pencher sur le problème (pas de précipitation) Etre zen et avoir une attitude positive « …[Sherlock Holmes] était en veston dintérieur, paresseusement étendu sur un sofa ; à portée de sa main une pipe et une pile de journaux… » Arthur Conan Doyle

17 17 Etape 2 Demander la description des symptômes Personne à joindre Date doccurrence, date de première occurrence Version des binaires/OS/etc. Quels sont les symptômes, et comment les reproduire Tout se joue à cette réponse ; on caractérise ici les problèmes reproductibles ou intermittents Y-a-t-il dautre symptômes en relation « Peut-être me suis-je entrainé à voir ce que dautres ne voient pas…Sinon dailleurs, pourquoi seriez-vous venue me consulter ? » Arthur Conan Doyle

18 18 Etape 3 Reproduire les symptômes « Chercher une explication avant de connaitre tous les faits est une erreur capitale. Le jugement sen trouve faussé. » Arthur Conan Doyle

19 19 Etape 4 Vérifier les taches de maintenance Contrôler que toutes les mises à jour ont été faites Binaires Données Etc.

20 20 Etape 5 Débusquer le bug 1/2 Diviser lespace des possibilités Une simple recherche par dichotomie permet en 20 étapes de trouver parmi un million de fonctions laquelle pose problème « Lorsquun fait semble contredire une longue suite de déductions, cest quon linterprète mal » Arthur Conan Doyle Mathématiquement, si on vous donne suffisamment de temps, vous êtes SURS dy arriver

21 21 Etape 5 Débusquer le bug 2/2 Préférer lanalyse du comportement à lapproche différentielle Répondre à pourquoi ? plutôt quà quest-ce qui a changé ? (les deux sont cependant souvent nécessaires) Ne pas hésiter a tester certaines hypothèses peu probables si elles sont rapides à essayer Connaitre le rasoir dOckham Revenir en arrière pour tester une hypothèse qui semblait peu probable avant, mais qui maintenant parait plus intéressante « Lorsque vous avez éliminé limpossible, ce qui reste, si improbable soit-il, est nécessairement la vérité » Arthur Conan Doyle

22 22 Etape 6 Corriger En exclusivité, les trois niveaux de qualité dune correction Niveau 1 : elle marche Niveau 2 : elle marche et vous savez pourquoi Niveau 3 : elle marche, vous savez pourquoi, et elle explique tous les comportements du système observés lors des étapes précédentes

23 23 Etape 7 Tester que la correction marche Rester honnête Ne pas se laisser emporter (pour le moment) par la joie davoir peut-être trouvé

24 24 Etape 8 Exulter (très fort) Sautoriser un moment dautocongratulation Répandre la nouvelle, expliquer comment VOUS avez trouvé le coupable Souvenez-vous où vous avez été bon, où vous auriez pu être meilleur « Élémentaire mon cher Watson » Sir Arthur Conan Doyle

25 25 Etape 9 Prévenir les occurrences futures Faire une correction défensive : quil soit difficile pour un autre développeur ou utilisateur de le rencontrer de nouveau Si besoin, automatiser une vérification Documenter les symptômes et la correction effectuée Expliquer comment éviter le problème à lutilisateur

26 26 Finalement, un bon détective doit être équipé… De son cerveau…et de la connaissance de quelques outils Doptimisme (je vais y arriver) De scepticisme : TOUJOURS vérifier soit même (si possible) les affirmations des autres De calme : ne pas se laisser envahir par les émotions (colère, stress, etc.) De pragmatisme : essayer de trouver la meilleure solution en terme de rapidité et de faisabilité De curiosité (tiens, comment ça marche ?) De ténacité (je vais vraiment y arriver !)

27 27

28 28 Ou lon découvre trois outils que se doit de connaitre tout apprenti détective Les symboles Les dumps Les debuggers

29 29 Les symboles : lœil de l enquêteur (et pourquoi ne peut-on sen passer)

30 30 Quest-ce quun symbole ? Requit pour réaliser une analyse via un debugger Produit lors du "link" de l'application Debug / Release Symboles privés / public Les symboles de Microsoft

31 31 Construction Les symboles La gestion des symboles Les solutions d'industrialisation TFS 2010, Symstore, PowerShell… Serveur de compilation Stockage physique des symboles Serveur HTTP SymProxy Lien symbolique

32 32 Les symboles La gestion des symboles Les solutions d'industrialisation TFS 2010, Symstore, PowerShell… Debugger Utilisation Debugger Serveur HTTP SymProxy Serveur de compilation Stockage physique des symboles Serveur de symbole Microsoft Firewall

33 33 Les symboles Dans les outils Tools / Options / Symbols Srv* * Les Outils

34 34 Démo Les symboles Serveur de symbole SymStore, Visual Studio IDE

35 35 Les dump : des instantanés de la scène de crime

36 36 Quest-ce quun dump ? Sous Windows, un fichier avec lextension.dmp Il contient un instantané de létat du processus au moment de la prise du dump On peux choisir de navoir que le minimum dinformations (le thread courant et sa callstack), ou toute la mémoire Est utilisé dans lanalyse « post mortem »

37 37 Comment génère-t-on un dump ? Avec ProcDump de SysInternals Permet de dumper en cas dexception Permet de dumper a intervalle régulier Permet de dumper quand on consomme trop de CPU Etc. Avec Process Explorer de SysInternals Clic droit sur un processus, « Create dump » Avec WinDbg Commande «.dump [/ma] » Avec le Task Manager Clic droit sur un processus, « Create dump file » Avec Visual Studio Menu « Debug », « Save Dump As… »

38 38 Démo Créer un dump sur exception ProcDump, Visual Studio IDE

39 39 Lanalyse des dumps : un vaste sujet… 722 pages 472 pages 404 pages 424 pages400 pages

40 40 Les debugger : le microscope électronique du détective

41 41 Les Debugger Les Outils Visual Studio Debugging Tools for Windows Windbg.exe, ntsd.exe, cdb.exe Les fonctionnalités Debugging interactif (debug Live) Ouvrir un "dump" mémoire et l'analyser (post mortem) Debug Local ou via le réseau Debugging en mode kernel Nécessite les symbole pour éviter que lenquête ne dure pas plusieurs semaines, mois?

42 42 Visual Studio 2010 Le Debugger Points darrêt conditionnels, trace point Fenêtre de Watch, les Pseudo Register Fenêtre Immédiate, les commandes de type NTSD Les nouveauté Nouveaux point darrêt conditionnels sur des chaines Fonctions de débogage multithread et parallèle Analyse de dump mémoire Importation / exportation de points d'arrêt

43 43 Démo Le debugger de Visual Studio 2010 Visual Studio IDE

44 44

45 45 Crime #1 : la mort du processus Les leçons de Sherlock Holmes

46 46 Pour quelle raisons un processus peut-il disparaitre ? Meurtre commandité (appel de kill depuis lextérieur) Mort naturelle (fin de la fonction Main) Suicide (appel de ExitProcess() ) Crime (exception non rattrapée)

47 47 Comme souvent, la façon de trouver le coupable dépend de la nature du crime Reproductible Sattacher avec un debugger Si reproductible uniquement sur le poste client ou sur un serveur (sans debugger dinstallé), vous pouvez Copier les fichiers de debugging distant de Visual Studio (situés dans \Common7\IDE\ ) et utiliser Visual Studio à distance Utiliser WinDbg en local ou à distance avec son compagnon cdb.exe Intermittent Programmer un dump avec ProcDump Utiliser loption –t (dump on Terminate) en cas de fin normale Utiliser loption –e (dump on Exception) en cas de fin avec exception

48 48 Démo Debugger le démarrage dun service Un truc du docteur Watson GFlags, Visual Studio Just-in-time Debugger, Visual Studio IDE

49 49 Le cas particulier des arrêts (très) intermittents de processus Il existe un outil Microsoft qui permet de debugger un logiciel sans intervention humaine : ADPlus Permet de donner des conditions très spécifiques de créations de dumps (seulement après passage dans telle fonction, seulement si un type particulier dexception arrive, etc.) Se base sur des scripts de type WinDbg Peut agréger plusieurs surveillances de processus à distance Livré avec le package « Debugging Tools for Windows »

50 50

51 51 Crime #2 : le vol de temps Les leçons de Sherlock Holmes

52 52 Une méthode injustement méconnue : le sampling Consiste a observer périodiquement la callstack dun processus Nimporte quel visionneur de callstack fait laffaire : Visual Studio ou WinDbg Des dumps réguliers avec ProcDump, puis ouverture de chaque dump Process Explorer Ne marche que si le problème de performance est clairement localisé dans une fonction Dans ce cas, la plupart des callstacks comportent cette fonction dans leurs listing

53 53 Démo Lanalyse de performance par sampling Un autre truc du docteur Watson Process Explorer

54 54 Une autre méthode injustement méconnue : lobservation extérieure du coupable Consiste a utiliser les outils qui analysent les actions dun processus ProcMon de SysInternals pour monitorer les accès aux fichiers, à la base de registres, au réseau, etc… Process Explorer de SysInternals pour les grandes tendances et quelques compteurs de performance PerfMon pour lobservation précise dun compteur de performance

55 55 Démo Que fait Visual Studio au démarrage ? ProcMon

56 56 Conclusions …où les conseils (durement appris) de deux debugger professionnels

57 57 1. Etre un bon troubleshooter, cest une question de méthode 2. Sans symboles, rien nest facile 3. Chaque heure passée sur du debugging révèle un problème dans le processus de R&D (et coûte très cher…) 4. Si vous ne trouvez pas (tout de suite) le bug, prévoyez une solution pour quil handicape moins lutilisateur (sauvegarde de létat, redémarrage automatique, etc.)

58 58 Sites utiles Les Debugging Tools For Windows SysInternals Les blogs Le blog de Naveen Rinivasan : Le blog de Mark Russinovich : Le blog de John Robbins : Le blog de Tess Ferrandez : Et si WinDbg vous fait peur… La philosophie du troubleshooter Lœuvre dun vrai détective

59 59 MSDN et TechNet : lessentiel des ressources techniques à portée de clic Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs

60


Télécharger ppt "2 Et si Sherlock Holmes faisait du debugging LAN401 – Microsoft Techdays 9 février 2011 – 11h-12h Gilles Guimard Julien Crozon."

Présentations similaires


Annonces Google