Suche senden
Hochladen
Debug Hacks at Security and Programming camp 2011
•
2 gefällt mir
•
1,018 views
Hiro Yoshioka
Folgen
Debug Hacks at Security and Programming camp 2011
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 41
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Programming camp 2010 debug hacks
Programming camp 2010 debug hacks
Hiro Yoshioka
Goでこれどうやるの? 入門
Goでこれどうやるの? 入門
zaru sakuraba
fluent-plugin-resque_stat
fluent-plugin-resque_stat
Makoto Haruyama
Seccan2012 secure os
Seccan2012 secure os
Chiharu Usui
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
Hisateru Tanaka
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて
Yuta Ogura
Empfohlen
Programming camp 2010 debug hacks
Programming camp 2010 debug hacks
Hiro Yoshioka
Goでこれどうやるの? 入門
Goでこれどうやるの? 入門
zaru sakuraba
fluent-plugin-resque_stat
fluent-plugin-resque_stat
Makoto Haruyama
Seccan2012 secure os
Seccan2012 secure os
Chiharu Usui
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
Hisateru Tanaka
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて
Yuta Ogura
Programming camp Codereading
Programming camp Codereading
Hiro Yoshioka
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
kyon mm
Functions
Functions
do_aki
Node.js Error & Debug Leveling
Node.js Error & Debug Leveling
kumatch kumatch
第一回サーバー勉強友の会
第一回サーバー勉強友の会
Takahashi Tomohiko
Closures and methodMissing are real
Closures and methodMissing are real
Takahiro Sugiura
第二回サーバー勉強友の会
第二回サーバー勉強友の会
Takahashi Tomohiko
YAPC::ASIA 2012 LT GaiaX
YAPC::ASIA 2012 LT GaiaX
Kazuyuki Todo
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
gotohayato
Predefを使ったsqlのトレース
Predefを使ったsqlのトレース
悠滋 山本
道具を磨き続ける
道具を磨き続ける
Takuya Fujimura
サイ本読書会4章変数
サイ本読書会4章変数
ztyper
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法
yhara
マークアップ会議 PHP資料
マークアップ会議 PHP資料
Wataru Kashii
About func unit
About func unit
gray Space
WordPress のための PHP 超入門
WordPress のための PHP 超入門
Michinari Odajima
JavaScript And Debug
JavaScript And Debug
uupaa
mq 使ってみたよ
mq 使ってみたよ
Tomohiro NAKAMURA
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
Oda Shinsuke
phpext-2-takagi
phpext-2-takagi
Masahiro Takagi
getstartedc#_2
getstartedc#_2
Ryuichi ITO
Techno TUT Lecture(scale)
Techno TUT Lecture(scale)
NU_Pan
Weitere ähnliche Inhalte
Was ist angesagt?
Programming camp Codereading
Programming camp Codereading
Hiro Yoshioka
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
kyon mm
Functions
Functions
do_aki
Node.js Error & Debug Leveling
Node.js Error & Debug Leveling
kumatch kumatch
第一回サーバー勉強友の会
第一回サーバー勉強友の会
Takahashi Tomohiko
Closures and methodMissing are real
Closures and methodMissing are real
Takahiro Sugiura
第二回サーバー勉強友の会
第二回サーバー勉強友の会
Takahashi Tomohiko
YAPC::ASIA 2012 LT GaiaX
YAPC::ASIA 2012 LT GaiaX
Kazuyuki Todo
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
gotohayato
Predefを使ったsqlのトレース
Predefを使ったsqlのトレース
悠滋 山本
道具を磨き続ける
道具を磨き続ける
Takuya Fujimura
サイ本読書会4章変数
サイ本読書会4章変数
ztyper
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法
yhara
マークアップ会議 PHP資料
マークアップ会議 PHP資料
Wataru Kashii
About func unit
About func unit
gray Space
WordPress のための PHP 超入門
WordPress のための PHP 超入門
Michinari Odajima
JavaScript And Debug
JavaScript And Debug
uupaa
mq 使ってみたよ
mq 使ってみたよ
Tomohiro NAKAMURA
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
Oda Shinsuke
phpext-2-takagi
phpext-2-takagi
Masahiro Takagi
Was ist angesagt?
(20)
Programming camp Codereading
Programming camp Codereading
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
Functions
Functions
Node.js Error & Debug Leveling
Node.js Error & Debug Leveling
第一回サーバー勉強友の会
第一回サーバー勉強友の会
Closures and methodMissing are real
Closures and methodMissing are real
第二回サーバー勉強友の会
第二回サーバー勉強友の会
YAPC::ASIA 2012 LT GaiaX
YAPC::ASIA 2012 LT GaiaX
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
Predefを使ったsqlのトレース
Predefを使ったsqlのトレース
道具を磨き続ける
道具を磨き続ける
サイ本読書会4章変数
サイ本読書会4章変数
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法
マークアップ会議 PHP資料
マークアップ会議 PHP資料
About func unit
About func unit
WordPress のための PHP 超入門
WordPress のための PHP 超入門
JavaScript And Debug
JavaScript And Debug
mq 使ってみたよ
mq 使ってみたよ
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
phpext-2-takagi
phpext-2-takagi
Andere mochten auch
getstartedc#_2
getstartedc#_2
Ryuichi ITO
Techno TUT Lecture(scale)
Techno TUT Lecture(scale)
NU_Pan
Gcdについて?
Gcdについて?
Shun Nakahara
Mrsuzuki
Mrsuzuki
Ryotaro Tsuda
puyoai
puyoai
gecko655
漢直の世界へようこそ!
漢直の世界へようこそ!
Takafumi Sakakibara
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
Takafumi Sakakibara
Techno TUT Lecture(Drums and Basses)
Techno TUT Lecture(Drums and Basses)
NU_Pan
戦技研 ぷよぷよAI 学生講義
戦技研 ぷよぷよAI 学生講義
hisyachu
Jet brainsnight resharper全社導入事例
Jet brainsnight resharper全社導入事例
AkihiroYamamoto
Gestão de Projetos 2012 - Módulo 1
Gestão de Projetos 2012 - Módulo 1
Portal Voluntários Online
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
ytanno
Hacker centric culture @devlove 110423
Hacker centric culture @devlove 110423
Hiro Yoshioka
Tokaido 53 walk
Tokaido 53 walk
Hiro Yoshioka
How Changing Mobile Technology Is Changing The Way We Create Economy.
How Changing Mobile Technology Is Changing The Way We Create Economy.
Osaka University
kernel code reading party on March 28th, 2014
kernel code reading party on March 28th, 2014
Hiro Yoshioka
1000 Speakers Conference in English, 5th on April 11th, 2014 #1000eng
1000 Speakers Conference in English, 5th on April 11th, 2014 #1000eng
Hiro Yoshioka
対人関係におけるアルコールの効用
対人関係におけるアルコールの効用
Akiko Kosaka
Project Based Learning using by PaaS
Project Based Learning using by PaaS
Hiro Yoshioka
English Book Club at 1000 Speakers Conference in English, 3rd, on Feb 7th, 2014
English Book Club at 1000 Speakers Conference in English, 3rd, on Feb 7th, 2014
Hiro Yoshioka
Andere mochten auch
(20)
getstartedc#_2
getstartedc#_2
Techno TUT Lecture(scale)
Techno TUT Lecture(scale)
Gcdについて?
Gcdについて?
Mrsuzuki
Mrsuzuki
puyoai
puyoai
漢直の世界へようこそ!
漢直の世界へようこそ!
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
TUT-Codeの世界へようこそ!(続・漢直の世界へようこそ)
Techno TUT Lecture(Drums and Basses)
Techno TUT Lecture(Drums and Basses)
戦技研 ぷよぷよAI 学生講義
戦技研 ぷよぷよAI 学生講義
Jet brainsnight resharper全社導入事例
Jet brainsnight resharper全社導入事例
Gestão de Projetos 2012 - Módulo 1
Gestão de Projetos 2012 - Módulo 1
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
Hacker centric culture @devlove 110423
Hacker centric culture @devlove 110423
Tokaido 53 walk
Tokaido 53 walk
How Changing Mobile Technology Is Changing The Way We Create Economy.
How Changing Mobile Technology Is Changing The Way We Create Economy.
kernel code reading party on March 28th, 2014
kernel code reading party on March 28th, 2014
1000 Speakers Conference in English, 5th on April 11th, 2014 #1000eng
1000 Speakers Conference in English, 5th on April 11th, 2014 #1000eng
対人関係におけるアルコールの効用
対人関係におけるアルコールの効用
Project Based Learning using by PaaS
Project Based Learning using by PaaS
English Book Club at 1000 Speakers Conference in English, 3rd, on Feb 7th, 2014
English Book Club at 1000 Speakers Conference in English, 3rd, on Feb 7th, 2014
Ähnlich wie Debug Hacks at Security and Programming camp 2011
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
Programming camp Debug Hacks
Programming camp Debug Hacks
Hiro Yoshioka
MoteMote Compiler Plugin
MoteMote Compiler Plugin
yoshiaki iwanaga
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)
Akira Kaneda
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
simotin13 Miyazaki
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
Programming camp code reading
Programming camp code reading
Hiro Yoshioka
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
Yoshifumi Yamaguchi
TotalViewを使った代表的なバグに対するアプローチ
TotalViewを使った代表的なバグに対するアプローチ
RWSJapan
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
0621 ndk game
0621 ndk game
cat kaotaro
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Mori Shingo
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
kimukou_26 Kimukou
jenkinsで遊ぶ
jenkinsで遊ぶ
(^-^) togakushi
第2回勉強会スライド
第2回勉強会スライド
koturn 0;
Ansible入門
Ansible入門
Akira Otsuka
Potatotops20141217
Potatotops20141217
Mogi Isamu
about DakotagUI
about DakotagUI
Etsuji Nomura
Ähnlich wie Debug Hacks at Security and Programming camp 2011
(20)
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Programming camp Debug Hacks
Programming camp Debug Hacks
MoteMote Compiler Plugin
MoteMote Compiler Plugin
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
Edge os(vyos)の基本(入門編)
Edge os(vyos)の基本(入門編)
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Programming camp code reading
Programming camp code reading
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
TotalViewを使った代表的なバグに対するアプローチ
TotalViewを使った代表的なバグに対するアプローチ
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
0621 ndk game
0621 ndk game
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
jenkinsで遊ぶ
jenkinsで遊ぶ
第2回勉強会スライド
第2回勉強会スライド
Ansible入門
Ansible入門
Potatotops20141217
Potatotops20141217
about DakotagUI
about DakotagUI
Mehr von Hiro Yoshioka
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Hiro Yoshioka
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Hiro Yoshioka
不揮発性メモリ(NVM)とはなにか
不揮発性メモリ(NVM)とはなにか
Hiro Yoshioka
続・人生100年時代の学び方
続・人生100年時代の学び方
Hiro Yoshioka
人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活
Hiro Yoshioka
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Hiro Yoshioka
人生100年時代の学び方、脳には可塑性がある
人生100年時代の学び方、脳には可塑性がある
Hiro Yoshioka
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
Hiro Yoshioka
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
Hiro Yoshioka
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
Hiro Yoshioka
未経験プログラマがコボルコンパイラを作った話 #compiler_study
未経験プログラマがコボルコンパイラを作った話 #compiler_study
Hiro Yoshioka
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Hiro Yoshioka
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
Hiro Yoshioka
理科系の作文技術
理科系の作文技術
Hiro Yoshioka
Agile Software Development advanced course (PBL) at AIIT, 2015
Agile Software Development advanced course (PBL) at AIIT, 2015
Hiro Yoshioka
質問される力 #TechGirls
質問される力 #TechGirls
Hiro Yoshioka
Oracle vs Google API 著作権裁判を考える
Oracle vs Google API 著作権裁判を考える
Hiro Yoshioka
Using oss at an internet company and hacker culture
Using oss at an internet company and hacker culture
Hiro Yoshioka
Be Hacker
Be Hacker
Hiro Yoshioka
IT勉強会 Anatomy of IT Study groups, seminars, conferences in Japan
IT勉強会 Anatomy of IT Study groups, seminars, conferences in Japan
Hiro Yoshioka
Mehr von Hiro Yoshioka
(20)
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
不揮発性メモリ(NVM)とはなにか
不揮発性メモリ(NVM)とはなにか
続・人生100年時代の学び方
続・人生100年時代の学び方
人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
人生100年時代の学び方、脳には可塑性がある
人生100年時代の学び方、脳には可塑性がある
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
未経験プログラマがコボルコンパイラを作った話 #compiler_study
未経験プログラマがコボルコンパイラを作った話 #compiler_study
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
理科系の作文技術
理科系の作文技術
Agile Software Development advanced course (PBL) at AIIT, 2015
Agile Software Development advanced course (PBL) at AIIT, 2015
質問される力 #TechGirls
質問される力 #TechGirls
Oracle vs Google API 著作権裁判を考える
Oracle vs Google API 著作権裁判を考える
Using oss at an internet company and hacker culture
Using oss at an internet company and hacker culture
Be Hacker
Be Hacker
IT勉強会 Anatomy of IT Study groups, seminars, conferences in Japan
IT勉強会 Anatomy of IT Study groups, seminars, conferences in Japan
Kürzlich hochgeladen
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Kürzlich hochgeladen
(9)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Debug Hacks at Security and Programming camp 2011
1.
Debug Hacks
8/11/'11 よしおかひろたか (Debug Hacks 著者 ) hyoshiok@gmail.com http://d.hatena.ne.jp/hyoshiok/ twitter @hyoshiok
2.
Debug Hacks
● Debug Hacks -- デバッグを極めるテク ニック & ツール ● 吉岡 弘隆 , 大和 一洋 , 大岩 尚宏 , 安部 東洋 , 吉田 俊輔 ● ISBN:978-4-87311-404-0 ● オライリー・ジャパン ● 2009 年 4 月 22 日
3.
デバッグ入門 ●
デバッグとは、ソフトウェアの不具合(バグ) を修正するプロセス ● ソフトウェアの不具合を発見するプロセスのこ とはテストとよぶ ● ソフトウェアの不具合を修正するのではなく回 避する方法をトラブルシューティングとよぶ ● Debug Hacks は主に(狭義の)デバッグについ て解説した書籍
4.
トラブルシューティング
5.
バグ ●
ソフトウェアの不具合(仕様との差異) – テストで発見する – それ以外で発見される ● たまたま使っていて発見、…
6.
バグのパターン ●
正常に終了(バグではない) ● 期待する動作をしないで終了 – 期待する出力をしない、クラッシュ、遅い、 ● 終了しない – デッドロック、無限ループ、
7.
デバッグのプロセス ●
問題の再現 – 環境設定 – ヒアリング ● 現象の確認 ● 問題の理解、解析 ● 原因が不明? – 過去にあった同様の問題を検索(バグ DB など) – バグ発生へ、そなえる – 同僚に説明する – コミュニティへ質問する
8.
デバッグのプロセス ●
バグ修正 ● 動作確認 – バグが直っていることの確認 – デグレード/エンバグがないことの確認 (リグレッションテストの実行) ● ピアレビュー ● テストプログラムの作成 ● コミュニティへの報告(必要であれば)
9.
デバッガを使おう ●
任意の場所にブレークポイントを設定できる。 ● プログラムを変更しなくても、変数の値を確認 することができる。 ● プログラムを変更しなくても、変数に任意の値 を設定できる。 ● 変数に値が代入されたときに停止することがで きる。 ● コールグラフ(バックトレース)を表示でき る。 ● printf() デバッグださいよね。
10.
デバッグのプロセス ●
期待しない値を出力して終了というケース – 任意の場所にブレークポイントを設定 – 実行 – 任意の変数の値を確認(期待通りか) ● 期待通りじゃない場合は、実行前半部分にバグ? ● 期待通りの場合は、実行後半にバグ? ● 終了しないケースは後述
11.
GDB の基礎の基礎 ●
Gcc でコンパイルする $gcc -g -Wall -Wall はとっても重要 その他、下記のフラグも -W -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith ● Makefile では CFLAGS にオプションを追加 ● INSTALL や README ファイルなどを確認
12.
GDB の基礎の基礎 ●
起動 ● $gdb 実行ファイル名 ● $gdb -c コアファイル 実行ファイル名 ● emacs から起動するときは、 M-x gdb
13.
GDB の基礎の基礎 ●
ブレークポイントの設定 – 任意の場所で停止する ● break 関数名 ● break 行番号 ● break ファイル名:行番号 ● break ファイル名:関数名 ● break [+|-] オフセット ● break * アドレス
14.
ブレークポイント ●
設定したブレークポイントの確認 info break
15.
実行 ●
run コマンド ● run 引数 ● main() にブレークポイントを設定して main() まで実行する – start コマンド
16.
ブレークしたら ●
どこで停止したか。 backtrace コマンド (bt と略す )
17.
変数の表示 ●
print[/ フォーマット ] 変数 – `x' 16 進数で表示 – `d' 10 進数で表示 – `u' 符号なしの 10 進数で表示 – `o' 8 進数で表示 – `t' 2 進数で表示。 `t' は "two" からくる。 – `a' アドレス – `c' 文字 (ASCII) として表示 – `f' 浮動小数点 – `s' 文字列として表示
18.
アドレスの表示 ●
x[/NFU] アドレス ● N 繰り返し回数 ● F フォーマット ● U 単位 – `b' バイト – `h' ハーフバイト( 2 バイト) – `w' ワード( 4 バイト) デフォルト – `g' ジャイアントバイト (8 バイト)
19.
逆アセンブル ●
disassemble コマンド
20.
実行の再開 ●
ステップ実行 ● continue ● finish/until
21.
ステップ実行 ●
ソースコード一行分実行する ● next – ソースコード一行分実行し停止する。関数呼び出し の場合、関数を実行後停止する。 ● step – ソースコード一行分実行し停止する。関数呼び出し の場合、その関数の最初の実行文を実行し停止す る。(もぐって行く)
22.
continue ●
実行を再開する – ブレークポイントで停止する – 実行を終了する
23.
finish/until ●
finish 関数を最後まで実行 – 関数の入り口でいろいろ調べた後、最後まで一気に 実行したいとき便利 ● until ループが終わるまで実行 – ループの入り口でいろいろ調べた後、ループを一気 に実行したいとき便利
24.
実行の再開のまとめ ●
next/step ● continue ● finish/until
25.
変数へ代入されたとき止めたい ●
ウォッチポイント。任意の変数に代入された時 に停止する。 ● watch 式(式が変更された時に停止) ● awatch 式(式が参照、変更された時に停止) ● rwatch 式(式が参照された時に停止) ● どこであるアドレスが変更されるか、よく分か らないときなどに利用すると便利。実行速度の 低下がある。
26.
その他のブレークポイント ●
ハードウェアブレークポイント (hbreak) ● 一時ブレークポイント (tbreak)
27.
変数の値の変更 ●
set variable 変数 = 式 ● ソースコードを変更する前に試行錯誤して確認 できる。
28.
その他のコマンド ●
info threads ● thread ● info registers ● frame
29.
期待しない値のケースのまとめ ●
任意の場所にブレークポイントを設定 ● 実行開始 ● 停止したら値の確認 ● 実行の再開 ● バグの原因を見つけるまで上記を繰り返す
30.
終了しない場合 ●
無限ループ、デッドロックなどで終了しない場 合のデバッグ ● 当該プロセスのプロセス ID を調べる $ ps aux|grep プログラム名 ● プロセスへアタッチする ● attach プロセス ID ● アタッチすると実行を停止するので、デバッグ をはじめる
31.
コアファイルがある場合 ●
$gdb -c コアファイル プログラム名 ● コアファイルを生成した時点でのスタックト レースなどが見れる
32.
まとめ ●
GDB の基本の基本を紹介した ● GDB は便利な機能満載なので使ってみよう ● Debug Hacks の感想、コメント、誤植の発見な どなど、著者 (hyoshiok@gmail.com) まで教え てください。
33.
付録: Debug Tools ●
kprobes ● jprobes ● KAHO ● systemtap ● VMware Vprobe ● crash ● gdb
34.
kprobes ●
任意のアドレスにプローブを挿入 ● Debug Hacks, #47, #49, #50
35.
jprobes ●
関数の先頭にプローブを設定することに特化し ているので、 kprobes よりもお手軽 ● Debug Hacks, #48
36.
KAHO ●
プロセスの関数を置き換えることができる ● Debug Hacks, #51
37.
systemtap ●
kprobes を利用して、独自のスクリプト言語を 用いてプローブハンドラを作成する。 ● Debug Hacks, #52, #53
38.
VMware Vprobe ●
ゲスト OS の状態を調査することができる ● Debug Hacks, #61
39.
crash ●
kernel crash dump utility ● Debug Hacks, #21
40.
gdb ●
デバッガー ● Debug Hacks, #5, #6, #7
41.
参考文献 ●
Intel® 64 and IA-32 Architectures Software Developer's Manuals http://www.intel.com/products/processor/manuals/index.htm
Jetzt herunterladen