Membalikkan debugging dalam skala besar

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





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






. ( ) , , . , Facebook, , .





, , , . CPU , LLDB, — -.





, ?

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





, , Intel PT . , , , :





Saat beberapa proses (A dan B) berjalan pada waktu yang sama, data jejak disimpan dalam buffer.  Pada t + 8, data proses B mulai menimpa data terlama (data proses A) di buffer.
(A B) , . t+8 B ( A) .

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





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





, , - . , .





, ? . , . , LLDB, . . .





Jejak terutama berisi informasi tentang cabang mana yang ditangkap dan mana yang tidak.  Kami membandingkan informasi ini dengan semua instruksi dari biner asli dan mengembalikan instruksi yang dijalankan oleh program.  Nanti, dengan menggunakan tumpukan simbolisasi LLDB, kita bisa mendapatkan informasi yang relevan tentang kode sumber dan menunjukkannya kepada insinyur dalam bentuk yang dapat dibaca.
, , — . , . LLDB .

:





— LLDB. — . , , . , , .





Bagian dari pohon panggilan fungsi, di mana setiap segmen vertikal berisi instruksi, dan tempat panggilan ditunjukkan dengan panah.
, , .

, , , ; . , — ?





, 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