Débogage inversé à grande échelle

— . Fullstack- Python , Facebook; FB LLDB, .





, , . 0,1 % , . , 0,1 % , . , .






. ( ) , , . , Facebook, , .





, , , . CPU , LLDB, — -.





, ?

Intel Processor Trace (Intel PT), , . — .





, , Intel PT . , , , :





Lorsque plusieurs processus (A et B) s'exécutent en même temps, les données de trace sont stockées dans une mémoire tampon.  À t + 8, les données du processus B commencent à écraser les données les plus anciennes (données du processus A) dans le tampon.
(A B) , . t+8 B ( A) .

, , , Intel PT . , . , . , .





, eBPF- — , , , , , . , , .





, , - . , .





, ? . , . , LLDB, . . .





La trace contient principalement des informations sur les branches qui ont été capturées et celles qui ne l'ont pas été.  Nous comparons ces informations avec toutes les instructions du binaire d'origine et restaurons les instructions qui ont été exécutées par le programme.  Plus tard, en utilisant la pile de symbolisation LLDB, nous pouvons obtenir les informations pertinentes sur le code source et les montrer à l'ingénieur sous une forme lisible.
, , — . , . LLDB .

:





— LLDB. — . , , . , , .





Partie de l'arborescence des appels de fonction, où chaque segment vertical contient des instructions, et les lieux de l'appel sont indiqués par des flèches.
, , .

, , , ; . , — ?





, 16 . 13, 15, , if . , , , , foo . , , . .





, . , function_a. :





, - VSCode, .





, , . , ; , ( ), , — .





, , . , fetch .





, (, P99). . , , , , . .





, : B .





, . , " " , Tracery. , LLDB . — , .





? , , 0,1 % , "Reverse debug on VSCode". , , , , if, , .





, . ( ) , . , . , .





, :





  • Data Scientist





  • Data Analyst





  • Data Engineering









  • Fullstack- Python





  • Java-





  • QA- JAVA





  • Frontend-









  • C++





  • Unity





  • -





  • iOS-





  • Android-









  • Machine Learning





  • "Machine Learning Deep Learning"





  • " Data Science"





  • " Machine Learning Data Science"





  • "Python -"





  • " "









  • DevOps








All Articles