Suche senden
Hochladen
Debug Hacks - 第4回つくらぐ勉強会
•
Als ODP, PDF herunterladen
•
2 gefällt mir
•
792 views
University of Tsukuba Linux User Group
Folgen
筑波大学 Linux User Group (つくらぐ) http://www.tsukuba-linux.org/
Weniger lesen
Mehr lesen
Bildung
Melden
Teilen
Melden
Teilen
1 von 24
Jetzt herunterladen
Empfohlen
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
monochrojazz
python-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしよう
monochrojazz
Tests and bugreports
Tests and bugreports
Mitsutoshi Nakano
Web applicationpenetrationtest その1_解答
Web applicationpenetrationtest その1_解答
Tetsuya Hasegawa
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会
Yu Shibatsuji
About alteryx
About alteryx
Yuu Kimy
ユニットテスト_2日目
ユニットテスト_2日目
Yoshiki Shibukawa
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
Emma Haruka Iwao
Empfohlen
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
monochrojazz
python-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしよう
monochrojazz
Tests and bugreports
Tests and bugreports
Mitsutoshi Nakano
Web applicationpenetrationtest その1_解答
Web applicationpenetrationtest その1_解答
Tetsuya Hasegawa
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会
Yu Shibatsuji
About alteryx
About alteryx
Yuu Kimy
ユニットテスト_2日目
ユニットテスト_2日目
Yoshiki Shibukawa
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
Emma Haruka Iwao
Bug撲滅作戦
Bug撲滅作戦
hayabusa333
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
Shigeru Kobayashi
Tensorflow
Tensorflow
Daisuke Yamashita
GLT Vol.35 (My First Computer)
GLT Vol.35 (My First Computer)
do_aki
Unit Test
Unit Test
ykhr
Android道第1回公開用
Android道第1回公開用
Takaya Funabiki
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
Tomohiro Kumagai
Getting started with Handoff
Getting started with Handoff
Yuichi Yoshida
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
アシアル株式会社
Uiテスト@yidev
Uiテスト@yidev
Yusuke Kita
Developing better debug_components
Developing better debug_components
Tomoaki Imai
例外設計における大罪
例外設計における大罪
Takuto Wada
クライアント側でつかまえて
クライアント側でつかまえて
Kaora Shibacaki
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
tokyorgirls
プログラミング初心者の壁の越え方
プログラミング初心者の壁の越え方
Yuichi Kato
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
Creators'night#3今井
Creators'night#3今井
Daisuke Imai
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
Atsushi Tadokoro
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
yjono Seino
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka
Weitere ähnliche Inhalte
Was ist angesagt?
Bug撲滅作戦
Bug撲滅作戦
hayabusa333
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
Shigeru Kobayashi
Tensorflow
Tensorflow
Daisuke Yamashita
GLT Vol.35 (My First Computer)
GLT Vol.35 (My First Computer)
do_aki
Unit Test
Unit Test
ykhr
Android道第1回公開用
Android道第1回公開用
Takaya Funabiki
Was ist angesagt?
(7)
Bug撲滅作戦
Bug撲滅作戦
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
Tensorflow
Tensorflow
GLT Vol.35 (My First Computer)
GLT Vol.35 (My First Computer)
Unit Test
Unit Test
Android道第1回公開用
Android道第1回公開用
Andere mochten auch
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
Tomohiro Kumagai
Getting started with Handoff
Getting started with Handoff
Yuichi Yoshida
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
アシアル株式会社
Uiテスト@yidev
Uiテスト@yidev
Yusuke Kita
Developing better debug_components
Developing better debug_components
Tomoaki Imai
例外設計における大罪
例外設計における大罪
Takuto Wada
クライアント側でつかまえて
クライアント側でつかまえて
Kaora Shibacaki
Andere mochten auch
(7)
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
#yidev 横浜 iPhone 勉強会 - 第16回 オープニング
Getting started with Handoff
Getting started with Handoff
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
Uiテスト@yidev
Uiテスト@yidev
Developing better debug_components
Developing better debug_components
例外設計における大罪
例外設計における大罪
クライアント側でつかまえて
クライアント側でつかまえて
Ähnlich wie Debug Hacks - 第4回つくらぐ勉強会
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
tokyorgirls
プログラミング初心者の壁の越え方
プログラミング初心者の壁の越え方
Yuichi Kato
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
Creators'night#3今井
Creators'night#3今井
Daisuke Imai
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
Atsushi Tadokoro
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
yjono Seino
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka
Cocoaアプリに無理矢理プラグインを導入する入門
Cocoaアプリに無理矢理プラグインを導入する入門
京大 マイコンクラブ
20160422_lombokについて
20160422_lombokについて
Hidaka Kazutaka
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
Masayuki Uehara
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
cch-robo
概観テキストマイニング
概観テキストマイニング
tod esking
DevOps、その前に
DevOps、その前に
Yuta Matsumura
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門
Atsushi Tadokoro
How to use SOAP interface of debbugs #tokyodebian
How to use SOAP interface of debbugs #tokyodebian
kenhys
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
Takafumi Inamori
LT#6 Taskete
LT#6 Taskete
Shingo Inoue
Debug Hacks Night
Debug Hacks Night
Hiro Yoshioka
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
nomuken
Ähnlich wie Debug Hacks - 第4回つくらぐ勉強会
(20)
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
プログラミング初心者の壁の越え方
プログラミング初心者の壁の越え方
java-ja TDD 2nd
java-ja TDD 2nd
Creators'night#3今井
Creators'night#3今井
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
センパイ!このプログラムクラッシュするんですけど。。。
センパイ!このプログラムクラッシュするんですけど。。。
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Cocoaアプリに無理矢理プラグインを導入する入門
Cocoaアプリに無理矢理プラグインを導入する入門
20160422_lombokについて
20160422_lombokについて
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
概観テキストマイニング
概観テキストマイニング
DevOps、その前に
DevOps、その前に
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門
How to use SOAP interface of debbugs #tokyodebian
How to use SOAP interface of debbugs #tokyodebian
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
LT#6 Taskete
LT#6 Taskete
Debug Hacks Night
Debug Hacks Night
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
Mehr von University of Tsukuba Linux User Group
Gentoo Linuxの紹介
Gentoo Linuxの紹介
University of Tsukuba Linux User Group
C言語の課題を(エクストリームに)解こう #1
C言語の課題を(エクストリームに)解こう #1
University of Tsukuba Linux User Group
monoqloの麻雀講座
monoqloの麻雀講座
University of Tsukuba Linux User Group
Hello,World Crazy!!
Hello,World Crazy!!
University of Tsukuba Linux User Group
カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)
University of Tsukuba Linux User Group
linuxで動画キャプチャ。 - 第4回つくらぐ勉強会
linuxで動画キャプチャ。 - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
USBからLinuxを起動してみよう! - 第4回つくらぐ勉強会
USBからLinuxを起動してみよう! - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
うぶんちゅ! - 第4回つくらぐ勉強会
うぶんちゅ! - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
カーネルをmakeしよう! - 第4回つくらぐ勉強会
カーネルをmakeしよう! - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
シンガポールのインターネット検閲事情 (LT) - 第4回つくらぐ勉強会
シンガポールのインターネット検閲事情 (LT) - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
ばっしゅ! (LT) - 第4回つくらぐ勉強会
ばっしゅ! (LT) - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
Mehr von University of Tsukuba Linux User Group
(12)
Gentoo Linuxの紹介
Gentoo Linuxの紹介
C言語の課題を(エクストリームに)解こう #1
C言語の課題を(エクストリームに)解こう #1
monoqloの麻雀講座
monoqloの麻雀講座
Hello,World Crazy!!
Hello,World Crazy!!
カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)
linuxで動画キャプチャ。 - 第4回つくらぐ勉強会
linuxで動画キャプチャ。 - 第4回つくらぐ勉強会
USBからLinuxを起動してみよう! - 第4回つくらぐ勉強会
USBからLinuxを起動してみよう! - 第4回つくらぐ勉強会
うぶんちゅ! - 第4回つくらぐ勉強会
うぶんちゅ! - 第4回つくらぐ勉強会
カーネルをmakeしよう! - 第4回つくらぐ勉強会
カーネルをmakeしよう! - 第4回つくらぐ勉強会
シンガポールのインターネット検閲事情 (LT) - 第4回つくらぐ勉強会
シンガポールのインターネット検閲事情 (LT) - 第4回つくらぐ勉強会
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
ばっしゅ! (LT) - 第4回つくらぐ勉強会
ばっしゅ! (LT) - 第4回つくらぐ勉強会
Kürzlich hochgeladen
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
Takayuki Itoh
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
Kürzlich hochgeladen
(7)
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
Debug Hacks - 第4回つくらぐ勉強会
1.
Debug Hacks っぽいなにか
もう、デバッガの使い方、でいいや つくらぐ #4 筑波大学 情報学群 情報科学類 Hirotaka Kawata (techno, @hktechno)
2.
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.
32.
break (b): ブレークポイントを設定
33.
continue (c): ステップ実行を抜ける
34.
print (p): 変数の表示
35.
あとは、ぐぐれ!
36.
デバッグしてみましょ! いくつかの、被験対象を用意しました。 時間の限りデバッグします。
若干、ヤバいものも w
37.
まとめ デバッガはすごい! デバッガを使おう!
デバッグを極めると、いいことがいっぱい! 変な言語覚える前に、デバッグ鍛えろ!
38.
おすすめの本とか ・Debug Hacks
・GDBハンドブック どっちも、オライリーです。 Debug Hacksは日本人が書いてます。
39.
長かったですが (たぶん) ご清聴ありがとうございました。
Jetzt herunterladen