Your SlideShare is downloading. ×
0
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Debug Hacks - 第4回つくらぐ勉強会

1,013

Published on

筑波大学 Linux User Group (つくらぐ) …

筑波大学 Linux User Group (つくらぐ)
http://www.tsukuba-linux.org/

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,013
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Debug Hacks っぽいなにか もう、デバッガの使い方、でいいや つくらぐ #4 筑波大学 情報学群 情報科学類 Hirotaka Kawata (techno, @hktechno)
  • 2. (つくらぐ恒例の?)自己紹介
    • techno, @hktechno, てくのたん
      • 筑波大学 情報学群 情報科学類 1年目
      • 3. 純粋な茨城県民。
      • 4. http://techno-st.net/ の中の人
      • 5. セキュリティ&プログラミングキャンプ 2009 OS 組のチューターやってきた
      • 6. 変なものばっかり開発してる (さらに、まともなものがない)
  • 7. 今日のお話 デバッグの基礎について話します 例の本みたいなことはやりません
  • 8. 軽い流れ
    • デバッグって何か
    • 9. デバッグの方法
    • 10. デバッガって何か
    • 11. デバッグしてみよう
    • 12. まとめ
  • 13. デバッグ (Debug) って何か バグを取り除くための “作業” です バグを発見したら、必ずデバッグしてるはずです ( ただし、放置したり、仕様と決め込んだ場合を除く )
  • 14. デバッグを極めると? ソフトウェア開発にバグは付き物です バグは除去しなければなりません しかし、それに時間をかけていると... あたりまえだけど、よくない。
  • 15. 最終的には... こんなコードでも 解析できるようになるかもしれないw
  • 16. IOCCC とかw
  • 17. デバッグを極めれば... 最終的には ... 開発の効率が上がる!
  • 18. デバッグの方法 普段から、 何気なく使っているデバッグ手法 いろいろあります。 たぶん、初心者に一番多いのが “ printf() デバッグ ” と呼ばれる手法でしょう。
  • 19. printf デバッグ 変数を、printf などを使って、 変数の中身などを出力させる手法。 プログラム中の怪しい場所に多数設置して、 変数の内容を監視する。 どこで、おかしくなったかがなんとなく分かる。 やってみましょう...
  • 20. printf もいいけど... 確かに、これでもできるけど... 面倒。 効率が悪い。 文句なんていっぱいありすぎて(ry
  • 21. もっと効率的に... デバッグにかける時間と手間を省きたいなら... デバッガを使おう! そして、極めよう! なわけで、本当はデバッグ全般について でもよかったのですが、 デバッガの使い方メインにすることにします。
  • 22. デバッガ (Debugger) とは... デバッグを支援してくれるソフトウェア 実行中のプログラムの中身を見ることができる gdb(GNU Debugger) などが有名 VisualStudio などにも付属している printf デバッグがハエたたきだとすると デバッガは、殺虫剤並の お手軽さと効果を持ち合わせた 最強兵器?!
  • 23. デバッガでできること
    • プログラムの実行を一時停止できる
    • 24. ソースを一行ずつ実行できる
    • 25. 実行中に変数の内容を見ることができる
    • 26. スタックの内容を覗いたりできる
    とにかく、すごい。 デバッグを使わなきゃ、損するだけ!
  • 27. とりあえず、使ってみようよ! 今回は... gdb(GNU Debugger) with Emacs を使います。 Emacsと一緒に使うことに意義がある! (らしい、吉岡さん談)
  • 28. gdbの基本 - 1 gdbを快適に使うには、デバッグ情報を コンパイラに吐かせる必要があります gcc -g オプションをつけることで、 デバッグ情報を付加できます。
  • 29. gdbの基本 - 2 コマンドラインに $ gdb a.out とか入力すると、gdbが起動します a.out をデバッグします
  • 30. Emacs と一緒に使おう! Emacsを起動します ソースを開いて、適当にコンパイル。 M-x gdbすると...
  • 31. gdb の使い方... といっても、大量にコマンドがあって... 超基本的なもの。
    • run (r): 実行
    • 32. break (b): ブレークポイントを設定
    • 33. continue (c): ステップ実行を抜ける
    • 34. print (p): 変数の表示
    • 35. あとは、ぐぐれ!
  • 36. デバッグしてみましょ! いくつかの、被験対象を用意しました。 時間の限りデバッグします。 若干、ヤバいものも w
  • 37. まとめ デバッガはすごい! デバッガを使おう! デバッグを極めると、いいことがいっぱい! 変な言語覚える前に、デバッグ鍛えろ!
  • 38. おすすめの本とか ・Debug Hacks ・GDBハンドブック どっちも、オライリーです。 Debug Hacksは日本人が書いてます。
  • 39. 長かったですが (たぶん) ご清聴ありがとうございました。

×