タグ

debugに関するtester7のブックマーク (3)

  • QEMU上のLinuxカーネルをGDBでデバッグする

    プログラムがセグメンテーションフォルトで不正終了した場合に、GDBで原因 調査するというのはよく聞く話である。しかし、こういったソフトウェア開発 の後行程で使用するだけではなく、前行程でも使うべきである。これは挙動が よく分からないプログラムの動作確認にGDBが有効であるからだ。 今回は特にprint文が動作しない段階のLinuxカーネルの動作をGDBで確認する。 ただし、あくまでQEMU上での動作である為、QEMUでサポートしていないハード やQEMUが再現しきれていないハードの動作部分については未対応である。そう いった場合はICEなどの治具を用いる必要がある。 1. カーネルコンフィグの設定 CONFIG_DEBUG_KERNELを有効にする。 Symbol: DEBUG_KERNEL [=y] Type : boolean Prompt: Kernel debugging Loca

    QEMU上のLinuxカーネルをGDBでデバッグする
  • sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog

    OSレベルで sys のCPU使用率が高い場合に perf*1 を使って、何の処理の割合が高いか調べる方法です。 perf は 特定のプロセスだけでなくOS全体の統計を見れる カーネル(sys)とユーザー(user)の両方を見れる ところが非常に便利だと思う*2。 準備 ひたすら write システムコールを発行し続けるプログラムを作成する $ cat write_loop.c #include <unistd.h> int main(void) { while(1) { write(1, "foo\n", 4); } } コンパイルする $ gcc write_loop.c -o write_loop 実行権限を付与する $ chmod u+x write_loop 検証 ひたすらwriteシステムコールを発行するプログラムを実行する $ ./write_loop > /dev/null

    sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog
  • シリコンバレーの英語: 英語でのバグレポートの書き方

    3月 21, 2012タイムラインに流れてきたこのリンク先の記事を見て下記の内容を書き込んだところ、いくつか反応を頂きました。せっかくなので、英語でのバグレポートの書き方について簡単にまとめてみます。ポイントは「英語に頼らずに英語を書く」です。 英語でのバグレポートが難しいという人は、日語でもレポートが書けてない可能性を考えるべき。フォーマットに従って「現状の動作」「期待される動作」を書いて、後は再現ステップと再現環境を書けば、英語が理由で伝わらないということはあまり無いと思う。バグレポートの文章の大半は固有名詞だし。 3月 21, 2012「問題となっている現状の動作」「期待される動作」「再現手順」を意識して書く 「バグレポートを読む」という意識でいる場合、読み手が期待するのはこの3点だと思います。逆に、この部分が書かれていれば、コミュニケーションを成立させることができます。 「現状の

    シリコンバレーの英語: 英語でのバグレポートの書き方
  • 1