大規模な逆デバッグ

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





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






. ( ) , , . , Facebook, , .





, , , . CPU , LLDB, — -.





, ?

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





, , Intel PT . , , , :





複数のプロセス(AとB)が同時に実行されている場合、トレースデータはバッファに保存されます。 t + 8で、プロセスBのデータは、バッファー内の最も古いデータ(プロセスAのデータ)の上書きを開始します。
(A B) , . t+8 B ( A) .

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





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





, , - . , .





, ? . , . , LLDB, . . .





トレースには、主に、キャプチャされたブランチとキャプチャされなかったブランチに関する情報が含まれています。 この情報を元のバイナリのすべての命令と比較し、プログラムによって実行された命令を復元します。 後で、LLDBシンボル化スタックを使用して、ソースコードに関する関連情報を取得し、読み取り可能な形式でエンジニアに表示できます。
, , — . , . LLDB .

:





— LLDB. — . , , . , , .





関数呼び出しツリーの一部。各垂直セグメントには命令が含まれ、呼び出しの場所は矢印で示されます。
, , .

, , , ; . , — ?





, 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