記事メモ

REPT: reverse debugging of failures in deployed software

March 16, 2019

リンク

REPT: reverse debugging of failures in deployed software | the morning paper

抜粋・メモ

  • 特にメモリダンプしか手に入らない状態での本番環境のクラッシュをデバッグ支援技術 REPTの提案
    • record/replay型の手法と比べてオーバーヘッドが少ないことが特徴
    • 制御フローがわかるメモリダンプと,メモリの最後の状態を入力に,データフローを再現→バグ再現支援
  • Key idea:
    1. まず制御フローを遡って,わかる範囲でデータフロー(変数の値の変遷)を再現,不明なところはそのまま
      • 最終状態から逆算するので,どこで値は書き換えられたかがわかる
      • 書き換えられる前の値はわからない
    2. 次に,初期状態から初めて制御フローをたどり,データフローを埋めていく
      • 今度は代入文などからどこで値が書き換えられたかわかる
      • すると後続の書き換え命令まではその値を保持していたこともわかる
    3. 1と2を繰り返すとデータフローが徐々にわかってくる
  • key ideaの適用例は以下

rept-fig-1.jpeg “Example” from Original article

Tagged: #debug