Return to Video

06-04 Favorite Bug Stories

  • 0:00 - 0:07
    私が気に入っているバグに関する話は
    F-16戦闘機に関連しています
  • 0:07 - 0:12
    F-16に関しては
  • 0:12 - 0:16
    とても興味深い話があるのです
  • 0:16 - 0:23
    戦闘機が飛んでいるとしましょう
    その戦闘機は赤道の上を通過する時に
  • 0:23 - 0:29
    機体を反転させ飛び続けました
  • 0:29 - 0:34
    幸運にもこれは
    シミュレーションの時にしか起こりませんでした
  • 0:34 - 0:37
    しかしこれが実際に起きていたらどうなるでしょうか?
  • 0:37 - 0:42
    F-16は逆さの状態で何時間も飛び続けることでしょう
  • 0:42 - 0:48
    この現象はナビゲーションシステム内の
    サイネージバグが原因でした
  • 0:48 - 0:51
    もしこのナビゲーションシステムが商用で使われたら
  • 0:51 - 0:55
    何が起きたか想像できるでしょうか
  • 0:55 - 1:03
    そうです 常にシートベルトが着用されていることを
    確認したほうがよさそうですね
  • 1:03 - 1:10
    もう1つのバグに関する話は
    Googleのモバイル用Android OSに関連しています
  • 1:10 - 1:15
    Androidの最初のバージョンは
    診断モードがオンにされていました
  • 1:15 - 1:22
    エンジニアがUNIXコマンドを入力するために
    シリアルポートを使う場合のモードです
  • 1:22 - 1:29
    興味深いことに電話がシリアルポートのデバイスを
    検出しなかった場合に
  • 1:29 - 1:33
    ビルトインキーボードに
    フォールバックしてしまったのです
  • 1:33 - 1:38
    これはキーボードで入力されたものすべてが
  • 1:38 - 1:42
    UNIXコマンドとして解釈されたということです
  • 1:42 - 1:48
    このバグはある人が
    "1日何してたの?"というSMSに対して
  • 1:48 - 1:51
    "Reboot"と返信した時に発見されました
  • 1:51 - 1:57
    この入力がコマンドとして解釈されたことで
    電話はリブートされました
  • 1:57 - 2:01
    入力するものすべてが
    UNIXコマンドとして解釈されるのです
  • 2:01 - 2:07
    "remove file"や"drop database"など
    何でも入力することが可能です
  • 2:07 - 2:11
    このバグはすぐ修正されました
  • 2:11 - 2:15
    もう1つ非常に不思議なバグの話があります
  • 2:15 - 2:19
    あるプログラムがクラッシュしました
  • 2:19 - 2:21
    ここまでは良かったんです
  • 2:21 - 2:25
    私は何が起きているのか調べるため
    print文を挿入しました
  • 2:25 - 2:32
    驚いたことにprint文を挿入した後
    そのバグが消えたのです
  • 2:32 - 2:34
    典型的なハイゼンバグでした
  • 2:34 - 2:39
    その後私がprint文を削除したところ
  • 2:39 - 2:42
    バグは消えたまま現れませんでした
  • 2:42 - 2:45
    これがバグを修正した興味深い方法です
  • 2:45 - 2:48
    一体何が起きていたのでしょう?
  • 2:48 - 2:52
    最終的にこれは
    リンカのバグだということが分かりました
  • 2:52 - 2:54
    リンカには2つのモードがありました
  • 2:54 - 2:59
    ただ変更へとリンクするインクリメンタルモードと
  • 2:59 - 3:04
    スクラッチからリンクする
    非インクリメンタルモードです
  • 3:04 - 3:09
    私がプログラムを変更すると
    インクリメンタルモードになり
  • 3:09 - 3:13
    インクリメンタルモードでは
    バグは発生しませんでした
  • 3:13 - 3:18
    最初は非インクリメンタルモードだったのでバグが現れ
  • 3:18 - 3:24
    インクリメンタルモードに変わるとバグが消えたのです
  • 3:24 - 3:29
    この問題に対処するのは大変でした
  • 3:29 - 3:35
    対処のために私が行ったことはリンクを2回行って
    インクリメンタルモードに変えるよう
  • 3:35 - 3:38
    ビルドしたスクリプにコメントを残したことです
  • 3:38 - 3:40
    これがバグを回避する方法でした
Tytuł:
06-04 Favorite Bug Stories
Video Language:
English
Team:
Udacity
Projekt:
CS259 - Software Debugging
Duration:
03:42

Japanese subtitles

Revisions Compare revisions