Et si Sherlock Holmes faisait du debugging

Et si Sherlock Holmes faisait du debugging

Et si Sherlock Holmes faisait du debugging LAN401 Microsoft Techdays 9 fvrier 2011 11h-12h Gilles Guimard Julien Crozon 2 Prsentation des speakers Julien Crozon Tech lead

Socit Gnrale Corporate Investment Banking http://bugslasher.net [email protected] Gilles Guimard Application Dev Manager Microsoft France http://blogs.msdn.com/gillesg/ [email protected] 3 Microsoft Services: Un accompagnement global de nos clients

Architecture & Planning Conseil et Projets Support Planification Dploiement et adoption Optimisation et Opration Support Premier

Premier Support Consulting Services Services Consulting Enterprise Strategy Strategy Enterprise Evaluation Dveloppement Planification

Stabilisation Dploiement Division Services France 2010 Support

Oprations Division Services Monde 2010 180 Consultants 125 Technical Account Managers 190 Ingnieurs Support 17 Responsables de Mission 41 Partenaires rfrencs

www.microsoft.fr/services 4 4 82 pays couverts 18 000 employs 35 000 partenaires 44 langues parles par nos ingnieurs Notre positionnement est dintervenir sur

les projets critiques et les technologies rcentes Criticit du projet Notre engagement auprs de nos partenaires est : De leur assurer un transfert dexpertise, De leur apporter notre support sur les dernires technologies, De leur donner accs aux meilleures

pratiques de mise en uvre et de support. Partenaires Maturit de la technologie Nos clients et partenaires sont particulirement satisfaits par Le niveau dengagement des consultants : 94% La gestion de lquipe de projet : 92%

Les comptences techniques des consultants : 91% La relation avec les quipes du client : 90% 5 5 De quoi va-t-on parler ? De la philosophie de lenquteur Des outils indispensables tout dtective informatique Des recettes pragmatiques pour dbusquer les

bugs Des crimes les plus courants 6 O lon ressent le dsarroi du dveloppeur Dmo Je comprends pas, a marchait chez moi Un dveloppeur souhaitant rester anonyme 7

Comment les traque-t-on ? Quest-ce quun bug ? Les trois outils principaux de lapprenti dtective Travaux pratiques : le vol de temps Travaux pratiques : la mort du processus 8 O lon parle de bugs (et

de la meilleure faon de les traquer) un fait hors de lordinaire est plutt un indice quun embarras Sir Arthur Conan Doyle Un bon bug est un bug mort General Lee 9 Un bug est avant tout Un dysfonctionnement ? Une source dennui ?

La meilleure faon de rester tard le soir ? NON ! Un bug est une excellente occasion de devenir un meilleur Oui mais pourquoi faire ? chasseur de bug 10 Pour largent

Un bon dtective est mieux pay A des arguments lors des ngociations salariales > Si je navais pas t l 11 Pour la gloire Un bon dtective obtient la reconnaissance de ses collgues Dtenteur dune sagesse : celui qui sait Plus on chasse les bugs, plus on apprend les chasser

12 Pour le bonheur Un bon dtective est plus heureux Etant sur de ses capacits, il subit moins de stress Etant plus rapide trouver les coupables, il rentre moins tard Vie personnelle plus panouie 13 Comment les traque-t-on ? Quest-ce quun bug ?

Les trois outils principaux de lapprenti dtective Travaux pratiques : le vol de temps Travaux pratiques : la mort du processus 14 Le secret dun bon dtective ou les 9 tapes dune enqute rondement mene Rien nest petit pour un grand esprit

Arthur Conan Doyle Jaime quun plan se droule sans accroc Colonel John Hannibal 15 Etape 1 Se prparer Se concentrer Sassurer davoir le temps de se pencher sur le problme (pas de prcipitation)

Etre zen et avoir une attitude positive [Sherlock Holmes] tait en veston dintrieur, paresseusement tendu sur un sofa ; porte de sa main une pipe et une pile de journaux Arthur Conan Doyle 16 Etape 2 Demander la description des symptmes Personne joindre Date doccurrence, date de premire occurrence Version des binaires/OS/etc. Quels sont les symptmes, et comment les

reproduire Tout se joue cette rponse ; on caractrise ici les problmes reproductibles ou intermittents Y-a-t-il dautre symptmes en relation Peut-tre me suis-je entrain voir ce que dautres ne voient pasSinon dailleurs, pourquoi seriez-vous venue me consulter ? Arthur Conan Doyle 17 Etape 3 Reproduire les symptmes Ne surtout pas sauter cette tape : cest la seule qui permettra

dtre sr davoir corrig Si le problme est intermittent, dfinir un plan qui permettra de valider quon a rsolu le problme Si il y a une occurrence toutes les X minutes, la probabilit que le problme ne soit pas apparu aprs Y minutes est (exemple : pour une fois toutes les 10 minutes, on a 7% de chance que rien ne soit arriv au bout de 40 minutes, ou 0,25% au bout de 80 minutes) Chercher une explication avant de connaitre tous les faits est une erreur capitale. Le jugement sen trouve fauss. Arthur Conan Doyle 18

Etape 4 Vrifier les taches de maintenance Contrler que toutes les mises jour ont t faites Binaires Donnes Etc. 19 Etape 5 Dbusquer le bug 1/2 Diviser lespace des possibilits

Une simple recherche par dichotomie permet en 20 tapes de trouver parmi un million de fonctions laquelle pose problme Mathmatiquement, si on vous donne suffisamment de temps, vous tes SURS dy arriver Lorsquun fait semble contredire une longue suite de dductions, cest quon linterprte mal Arthur Conan Doyle 20

Etape 5 Dbusquer le bug 2/2 Prfrer lanalyse du comportement lapproche diffrentielle Rpondre pourquoi ? plutt qu quest-ce qui a chang ? (les deux sont cependant souvent ncessaires) Ne pas hsiter a tester certaines hypothses peu probables si elles sont rapides essayer Connaitre le rasoir dOckham Revenir en arrire pour tester une hypothse qui semblait peu probable avant, mais qui maintenant parait plus intressante

Lorsque vous avez limin limpossible, ce qui reste, si improbable soit-il, est ncessairement la vrit Arthur Conan Doyle 21 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

systme observs lors des tapes prcdentes 22 Etape 7 Tester que la correction marche Rester honnte Ne pas se laisser emporter (pour le moment) par la joie davoir peut-tre trouv 23

Etape 8 Exulter (trs fort) Sautoriser un moment dautocongratulation Rpandre la nouvelle, expliquer comment VOUS avez trouv le coupable Souvenez-vous o vous avez t bon, o vous auriez pu tre meilleur lmentaire mon cher Watson Sir Arthur Conan Doyle 24

Etape 9 Prvenir les occurrences futures Faire une correction dfensive : quil soit difficile pour un autre dveloppeur ou utilisateur de le rencontrer de nouveau Si besoin, automatiser une vrification Documenter les symptmes et la correction effectue Expliquer comment viter le problme lutilisateur 25

Finalement, un bon dtective doit tre quip De son cerveauet de la connaissance de quelques outils Doptimisme (je vais y arriver) De tnacit (je vais vraiment y arriver !) De curiosit (tiens, comment a marche ?) De pragmatisme : essayer de trouver la meilleure solution en terme de rapidit et de faisabilit

De scepticisme : TOUJOURS vrifier soit mme (si possible) les affirmations des autres De calme : ne pas se laisser envahir par les motions (colre, stress, etc.) 26 Comment les traque-t-on ? Quest-ce quun bug ? Les trois outils principaux de lapprenti dtective Travaux pratiques : le vol de temps

Travaux pratiques : la mort du processus 27 Ou lon dcouvre trois outils que se doit de connaitre tout apprenti dtective Les symboles Les dumps Les debuggers 28

Les symboles : lil de l enquteur (et pourquoi ne peut-on sen passer) 29 Quest-ce quun symbole ? Requit pour raliser une analyse via un debugger Produit lors du "link" de l'application Debug / Release

Symboles privs / public Les symboles de Microsoft 30 Les symboles La gestion des symboles Les solutions d'industrialisation TFS 2010, Symstore, PowerShell Construction Lien symbolique Serveur de compilation

Stockage physique des symboles Serveur HTTP SymProxy 31 Les symboles La gestion des symboles Les solutions d'industrialisation TFS 2010, Symstore, PowerShell Utilisation Firewall

Serveur de symbole Microsoft http://msdl.microsoft.com/downaload/symbols Serveur de compilation Stockage physique des symboles Debugger Debugger Serveur 32HTTP SymProxy Les symboles

Dans les outils Tools / Options / Symbols Srv** Les Outils 33 Dmo Les symboles Serveur de symbole SymStore, Visual Studio IDE 34

Les dump : des instantans de la scne de crime 35 Quest-ce quun dump ? Sous Windows, un fichier avec lextension .dmp Il contient un instantan de ltat 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 mmoire Est utilis dans lanalyse post mortem 36 Comment gnre-t-on un dump ? Avec ProcDump de SysInternals Permet de dumper en cas dexception Permet de dumper a intervalle rgulier 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 37

Dmo Crer un dump sur exception ProcDump, Visual Studio IDE 38 Lanalyse des dumps : un vaste sujet 722 pages 472 pages

404 pages 39 424 pages 400 pages Les debugger : le microscope lectronique du dtective 40

Les Debugger Les Outils Visual Studio Debugging Tools for Windows Windbg.exe, ntsd.exe, cdb.exe Les fonctionnalits Debugging interactif (debug Live) Ouvrir un "dump" mmoire et l'analyser (post mortem) Debug Local ou via le rseau Debugging en mode kernel Ncessite les symbole pour viter que lenqute ne

dure pas plusieurs semaines, mois? 41 Visual Studio 2010 Le Debugger Points darrt conditionnels, trace point Fentre de Watch, les Pseudo Register Fentre Immdiate, les commandes de type NTSD Les nouveaut Nouveaux point darrt conditionnels sur des chaines Fonctions de dbogage multithread et

parallle Analyse de dump mmoire Importation / exportation de points d'arrt 42 Dmo Le debugger de Visual Studio 2010 Visual Studio IDE 43 Comment les traque-t-on ? Quest-ce quun bug ?

Les trois outils principaux de lapprenti dtective Travaux pratiques : le vol de temps Travaux pratiques : la mort du processus 44 Les leons de Sherlock Holmes Crime #1 : la mort du processus

45 Pour quelle raisons un processus peut-il disparaitre ? Mort naturelle (fin de la fonction Main) Suicide (appel de ExitProcess() ) Crime (exception non rattrape) Meurtre commandit (appel de kill depuis lextrieur) 46

Comme souvent, la faon de trouver le coupable dpend 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 (situs 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 47 Dmo Debugger le dmarrage dun service Un truc du docteur Watson

GFlags, Visual Studio Just-in-time Debugger, Visual Studio IDE 48 Le cas particulier des arrts (trs) intermittents de processus Il existe un outil Microsoft qui permet de debugger un logiciel sans intervention humaine : ADPlus Permet de donner des conditions trs spcifiques de crations de dumps (seulement aprs passage dans telle fonction, seulement si un type particulier dexception arrive, etc.) Se base sur des scripts de type WinDbg

Peut agrger plusieurs surveillances de processus distance Livr avec le package Debugging Tools for Windows 49 Comment les traque-t-on ? Quest-ce quun bug ? Les trois outils principaux de lapprenti dtective Travaux pratiques : le vol

de temps Travaux pratiques : la mort du processus 50 Les leons de Sherlock Holmes Crime #2 : le vol de temps 51 Une mthode injustement mconnue : le sampling

Consiste a observer priodiquement la callstack dun processus Nimporte quel visionneur de callstack fait laffaire : Visual Studio ou WinDbg Des dumps rguliers avec ProcDump, puis ouverture de chaque dump Process Explorer Ne marche que si le problme de performance est clairement localis dans une fonction Dans ce cas, la plupart des callstacks comportent cette fonction dans leurs listing 52

Dmo Lanalyse de performance par sampling Un autre truc du docteur Watson Process Explorer 53 Une autre mthode injustement mconnue :

lobservation extrieure du coupable Consiste a utiliser les outils qui analysent les actions dun processus ProcMon de SysInternals pour monitorer les accs aux fichiers, la base de registres, au rseau, etc Process Explorer de SysInternals pour les grandes tendances et quelques compteurs de performance PerfMon pour lobservation prcise dun compteur de performance 54 Dmo

Que fait Visual Studio au dmarrage ? ProcMon 55 Conclusions o les conseils (durement appris) de deux debugger professionnels 56 1. Etre un bon troubleshooter, cest une question de mthode 2. Sans symboles, rien nest facile

3. Chaque heure passe sur du debugging rvle un problme dans le processus de R&D (et cote trs cher) 4. Si vous ne trouvez pas (tout de suite) le bug, prvoyez une solution pour quil handicape moins lutilisateur (sauvegarde de ltat, redmarrage automatique, etc.) 57 Sites utiles Les Debugging Tools For Windows http://www.microsoft.com/whdc/devtools/debugging/default.mspx

SysInternals http://technet.microsoft.com/en-us/sysinternals Les blogs Le blog de Naveen Rinivasan : http://naveensrinivasan.com/ Le blog de Mark Russinovich : http://blogs.technet.com/b/markrussinovich/ Le blog de John Robbins : http://www.wintellect.com/cs/blogs/jrobbins/default.aspx Le blog de Tess Ferrandez : http://blogs.msdn.com/b/tess/ http://bugslasher.net/ Et si WinDbg vous fait peur http://windbg.info

La philosophie du troubleshooter http://www.troubleshooters.com/tuni.htm Luvre dun vrai dtective http://fr.wikipedia.org/wiki/Sherlock_Holmes 58 MSDN et TechNet : lessentiel des ressources techniques porte de clic Portail administration

et infrastructure pour informaticiens Portail de ressources technique pour dveloppeurs http://msdn.com http://technet.com 59

Recently Viewed Presentations

  • Analogies - Mrs. Miranda's Classroom Website

    Analogies - Mrs. Miranda's Classroom Website

    Part to whole - the second word (solider) is part of the first word (platoon) Varying degree - the first word (hot) is the extreme of the second word (scalding) Antonym Object to function - gills are used to breathe...
  • Plate Tectonics - Biology, Earth Science, Environmental ...

    Plate Tectonics - Biology, Earth Science, Environmental ...

    Plate Tectonics Chapter 9.2 - 9.3 Plate Tectonics Proposed in 1965 by Tuzo Wilson = combination of Wegener & Hess's ideas. Convection Currents move the lithospheric plates causing geologic activity - (mountain building, volcanic eruptions and earthquakes) Convection Currents Upper...
  • Art History

    Art History

    Crusades begin in Europe (1095) Pilgrimages to Jerusalem begin . Pointed arch and flying buttress developed by French architects . King John of England signs the Magna Carta (1215) Pointed arch and flying buttress developed by French architects .
  • Clea Harmer 15th June 2018 Contents 1. Parents

    Clea Harmer 15th June 2018 Contents 1. Parents

    Clea Harmer. 1. 5. th. June 2018. Contents. Parents and communication at the heart of the Pathway. Updates. Pilot sites. Evaluation. 3. Challenges. 4. Vision going forward. ... Use year to move from 'driven' model to 'guided' model. Vision going...
  • GCSEs have been reformed - Outwood Academy Bydales

    GCSEs have been reformed - Outwood Academy Bydales

    GCSE English. GCSE Maths. GCSE Science × 2. Humanities - GCSE History or Geography. Language - GCSE French, German or Spanish. GCSE grades at 5+ The Full EBacc has been highly valued by the universities widely regarded as the top...
  • Sanctuary Neighbors

    Sanctuary Neighbors

    Latino and Asian immigrant entrepreneurs and consumers add billions of dollars and tens of thousands of jobs to Oregon's economy. 2014 Latino purchasing power totaled nearly $9.2 billion—an increase of 900% since 1990.
  • Behaviour Systems Parents workshop Our Policy  Based on

    Behaviour Systems Parents workshop Our Policy Based on

    Behaviour Systems Parents' workshop Our Policy Based on positive praise Praise for effort - no-one gets things right all of the time and mistakes are how we learn.
  • LMS 및 LCMS 특론 - cfile234.uf.daum.net

    LMS 및 LCMS 특론 - cfile234.uf.daum.net

    강의자료. 강의자료 및 공지사항. 강의 교재. 따로 없음. 참고 문헌. 사이버 가정학습 lms 기능 강화 방안 연구 keris 연구보고서 cr2006-47