Reverse Debugging in großem Maßstab

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





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






. ( ) , , . , Facebook, , .





, , , . CPU , LLDB, — -.





, ?

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





, , Intel PT . , , , :





Wenn mehrere Prozesse (A und B) gleichzeitig ausgeführt werden, werden die Ablaufverfolgungsdaten in einem Puffer gespeichert.  Bei t + 8 beginnen die Daten von Prozess B, die ältesten Daten (Daten von Prozess A) im Puffer zu überschreiben.
(A B) , . t+8 B ( A) .

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





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





, , - . , .





, ? . , . , LLDB, . . .





Die Ablaufverfolgung enthält hauptsächlich Informationen darüber, welche Zweige erfasst wurden und welche nicht.  Wir vergleichen diese Informationen mit allen Anweisungen aus der ursprünglichen Binärdatei und stellen die Anweisungen wieder her, die vom Programm ausgeführt wurden.  Später können wir mithilfe des LLDB-Symbolisierungsstapels die relevanten Informationen zum Quellcode abrufen und dem Ingenieur in lesbarer Form anzeigen.
, , — . , . LLDB .

:





— LLDB. — . , , . , , .





Ein Teil des Funktionsaufrufbaums, in dem jedes vertikale Segment Anweisungen enthält, und die Orte des Aufrufs sind durch Pfeile gekennzeichnet.
, , .

, , , ; . , — ?





, 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