ひなた先生が教えるデバッグが256倍速くなるテクニック : 実践的ソフトウェアデバッギングの手法

キーフレーズ

ケンイチ ひなた先生 int プログラム 早井 関数 テクニック マリスト ブレークポイント リスト void 呼び出し 場合 index メソッド デバッグ 教える ループ 実行 for return ポインタ 変数 public act gekogeko count cache person uint 命名規則 アドレス インテリセンス stub something コード end 書い object wanwan push プログラミング () コールスタック nyanko 例外 できる モルガン 発生 時間 講義ノート Software Design 思っ 必要 Nyanko sizeof catch イディオム クラス 100 テパッグ 先輩 意味 func 考え JumpOffset byte 参照 自分 class System Sparse 書く true ケアレスミス オブジェクト スタック NET 呼び出さ Enqueue チェック ソース ケニチ Java get 引数 ソースコード 正当性 条件 インクリメント 言う 表示 データ サイト

目次

ひなた先生が教える デバッグが 256 倍 速くなるテクニック はじめての出社の巻 … 010 はじめてのレビューの巻 .. … 011 デバッガの使い方の巻 .. 014 ひなた先生との出会いの巻 .. .. 017 ケンイチの講義ノート .. 020 ~ 023 素数について / ステップ実行について / 複数のブレークポイントを一度 に設定する方法 / 演算結果を調べるだけなら本当に簡単か ? ひなた先生の自己紹介の巻 .. 024 ひなた先生の最初の授業の巻 . .. 025 呼び出しグラフの巻 . .. 027 呼び出し元の特定の巻 . .. 028 デバッグに必要なのものは ? .. 029 開発室にて . .. 030 バグが露見した瞬間に停止させよ . .. 031 呼び出し元の特定の巻 . .. 035 書き換えのテクニック . .. 037 時間切れ . .. 040 ケンイチの講義ノート .. 041 バグの発生からその発見に至るまで / Visu 引 C + + 2005 / 2008 では なく Visual C# 2005 / 2008 ではどうか ? 第 1 回 デバッグにおける不確定性原理 010 第 2 回 バグの発生点と発現点 024 4

第 3 回 第 4 回 第 5 回 ニ分法によるバグ発生地点の絞り込み ケンイチの講義ノート ケンイチ、家来になるの巻 . ニ分探索の自動化の巻 .. 毎日が仁王立ちの巻 バグ発現の連続性の巻 . バグ追跡のためのニ分法の巻 . 毎日が水曜日の巻 ニ分法によるデバッグ 毎週水曜日は観音菩薩の日 . プログラムの中間地点の巻 .. 呼び出し履歴の巻 スキャンダル発覚の巻 . 関数の呼び出し元を判定するの巻 . 関数ポインタは嘘の値 ? ! stub を乗り越えて . ケンイチの講義ノート ニ分法での絞り込み / 呼び出し元 ( の関数 ) の判定 / ロギングに コールスタックの活用 .. 077 ~ 081 日 e 利 ection を用いる / まとめ / VisuaIStudio ミニテクニック① ( 検索 042 060 .. 054 .. 051 .. 050 .. 048 .. 042 .. 042 .. 075 .. 072 .. 068 .. 068 064 .. 062 .. 060 058 ~ 059 結果にジャンプ、括弧間の移動、コメント化とコメント解除 ) 予習はバッチリの巻 . スタック構造の巻 関数の hooking 教科書に載っていないスタック構造のヒミツの巻 教科書は教えてくれないスタック構造のことの巻 . 早井先輩、お腹いつばいですの巻 誰がわんわん殺したの ? の巻 ケンイチの講義ノート .. 082 083 .. 084 .. 086 .. 093 .. 094 082 .. 099 ~ 103 関数の呼び出しをバイバスする意味 / 関数の hook / C # や Java ではど うか / 対象性に着眼する / 今回、犯してしまったバグ /VisualStudio ニテクニック② ( ブレークポイントの有効 / 無効、インテリセンスを 半透明に ) 5

第 6 回 第 7 回 第 8 回 第 9 回 6 Sparse Matrix による logging やばい ! ! 遅刻かも ? の巻 ケンイチのヒミップログラムの巻 . G00 図 e の Page 日 ank のしくみの巻 PageRank を行列計算で考えるの巻 ケンイチの昼休みの巻 噴火寸前の巻 . 5 分と 5 時間の巻 Sparse Mat 「 ix の実装の巻 ケンイチの講義ノート .. 104 .. 105 .. 105 .. 111 .. 113 .. 114 .. 115 .. 118 .. 122 ~ 123 104 今回のまとめ / Spa ℃ e Mat 「ⅸを使うロギングは本当に役に立つのか ? プログラマのお給料って凄いの巻 バグを絞り込むの巻 . プログラムを変形してバグの原因を絞り込むの巻 . 削ろうにも削れないの巻 早井先輩は健忘症の巻 ヘビー級オブジェクトの巻 . ケンイチの講義ノート 今回のまとめ proxy object によるバグの再現 ケアレスミスはなぜ起きるのか ? 対称性を意識しろ ! の巻 早井先輩は、最近ヘンの巻 再帰的プログラミングの巻 迷路から脱出せよの巻 一緒にお風呂の巻 . ケンイチの講義ノート .. 142 .. 14J 145 .. 152 .. 154 124 .. 124 .. 126 .. 128 .. 1J2 .. 134 .. 1J5 .. 141 142 .. 158 ~ 159 今回のまとめ / スキャンラインアルゴリズム / Visua 旧 tudi0 ミニテク ニック③ ( 識別子の宣言を表、インテリセンスの入力候補一覧を表示 ) ケンイチはうそっきの巻 . プログラミングのイディオム 1 「 n 回まわる fo 「ループ」の巻 プログラミングのイディオム ( 前編 ) .. 160 160 .. 162

プログラミングのイディオム 2 「ループ変数が a から b までをとる for ループ」の巻 . プログラミングのイディオム 3 「ループ変数が iterato 「の場合のループ」の巻 .. プログラミングのイディオム 4 「範囲の比較」の巻 . ケンイチの講義ノート 216 ~ 217 .. 200 ~ 201 .. 168 .. 178 ~ 179 .. 174 .. 171 180 180 第 10 回プログラミングのイディオム ( 後編 ) ひなた先生は泥棒の巻 ニテクニック④ ( コード定義ウインドウの表示 ) 今回のまとめ / イディオムを用いたプログラミング / Visua 旧 tudi0 ミ 早井先輩は暴走気味の巻 . ド・モルガンの法則の巻 ド・モルガン則を実際に使ってみるの巻 . 双対性の巻 . 分配則の巻 .. Simple is NOT best の巻 ケニチ君の本当の名は ? の巻 . 本当の早井先輩の巻 . ケンイチの講義ノート 今回のまとめ / 方程式と恒等式について 誰にも知られずにの巻 ケンイチ君が遅刻の巻 第 1 1 回例外処理の考え方 ケンイチの講義ノート 例外を投げるメソッドに例外を投げさせないの巻 .. 例外を投げるクラスを w 「 ap するの巻 . NET Framewo 「 k の投げる例外の巻 Java vs. C # の例外処理の巻 そのメソッドはどんな例外を投げるのか ? の巻 . 例外を使う意義の巻 . 例外を使わずにプログラムを書けるのか ? の巻 .. 202 .. 203 .. 20J .. 205 .. 208 .. 209 .. 211 .. 212 .. 214 .. 181 .. 182 .. 184 .. 186 .. 190 .. 191 .. 195 .. 196 202 今回のまとめ / Visua 旧 tudi0 ミニテクニック⑤ ( 呼び出し履歴のウィ ンドウで関数呼び出しにブレークポイントを設定する、クラスビューの 表示 ) 7

第 1 2 回変数の命名規則 夜空の星にの巻 ケンイチの講義ノート 2021 年の変数の命名規則の巻 現代の命名規則の巻 . 2001 年のメンバの記法の巻 ラクダ記法の巻 . ハンガリアン記法の巻 プログラミングに歴史ありの巻 ケンイチの兄の巻 ケンイチ、早井。時を駆けるの巻 . 2893 年の巻 . 218 .. 235 .. 231 .. 228 .. 226 .. 225 .. 222 221 .. 220 .. 219 218 .. 240 ~ 241 今回のまとめ /VisuaIStudio 2005/2008 ExpressEdition の話 第 13 回 関数の返り値はどうあるべきか みんながかぼちゃの巻 ひなた先生の課題の巻 . 関数のしくみの巻 . 関数の返り値不要論の巻 . 返り値の変遷の巻 . インテリセンスと返り値の巻 早井先輩の本名の巻 ケンイチの講義ノート 260 ~ 267 Studio ミニテクニック⑥ ( ブレークポイントに条件を設定する、イン 今回のまとめ / method chain と cascading message/Visual .. 242 .. 243 .. 244 .. 248 .. 249 .. 253 258 242 スタンス単位でブレークポイントを設定する ) 海で溺れるの巻 . 早井先輩、会社を辞めるの巻 早井先輩にポインタを教えるの巻 . ポインタの演算の巻 ポインタを抽象化の巻 upcast されたポインタに対する加減算の巻 . ホインタ渡しの巻 . 参照は構文糖か ? の巻 . 第 14 回ポインタと参照との関係 8 .. 268 269 .. 270 .. 272 .. 275 .. 276 .. 277 .. 278 268

b00 には C # でどう書くの ? の巻 参照型を値型として扱いたいの巻 ケンイチの講義ノート 早井先輩の正体の巻 . get は「 ead と違うの巻 .. 279 28J .. 286 .. 287 . 288 ~ 289 最終回 登場人物紹介 今回のまとめ / 参照透明性 ( 「 eferentialtransparency) バグを憎んで人を憎まず ソースコードから書き手の意志を読むの巻 早井先輩の書いたコードの巻 . もはやコーディングができないの巻 早井先輩の名前の由来の巻 . 望まれていない生命の巻 早井先輩の正体の巻 . 康ニ、旅への巻 . 兄の悲しみの巻 . エピローグ 初出情報 . 290 .. 290 .. 291 .. 292 .. 29J .. 294 .. 299 .. 302 .. 306 .. 307 .. 引 0 新人プログラマ ケンイチ 大学で情報工学を専攻していた , この春に入社したばかりの社会人 一年生。職場で要求される仕事の レベルは高く、ついて行くために 日夜猛勉強をしている。 先輩プログラマ 早井 言動は荒いが根は良い人。 時代はラグビー部主将。関西人で す若手工リートプログラマ。学生 1 人で複数のプロジェクトをこな 特別講師 倉塚ひなた 9 の頃に早井を指導 ) で趣味は食玩集め。 行なっている。早井の師匠 ( 早井が新人 毎週ケンイチにプログラムのレッスンを いる。会社では、プログラム講師として、 まわりからは「ひなた先生」と呼はれて ケンイチの勤める会社の特別技術顧問。

奥付

著者略歴 やねうらお 1972 年生まれ。幼少期に TK80 に触れ、砂場で雷に打たれて覚醒する。 1 的 8 年、 BM98 が大ヒット。その後、ゲーム会社を経て独立。 Microsoft MVP Visual C# 装丁・本文デザイン・レイアウト◆ SeaGrape 編集◆原田崇靖 せんせいおし デバッグが 256 倍速くなるテクニック ばいはや ひなた先生が教える 製本には細心の注意を払っておりますが、万一、乱丁 ( ページの乱 定価はカバーに表示してあります。 印刷 / 製本・図書印刷株式会社 03-3513-6166 書籍編集部 電話 03-3513-6150 販売促進部 〒 162-0846 東京都新宿区市谷左内町 21-13 発行所・株式会社技術評論社 発行者・片岡巌 著者・やねうらお 平成 20 年 12 月 10 日初版第 1 刷発行 しゅほう ~ 実践的ソフトウェアデバッギングの手法 ~ しっせんてき Printed in Japan I S B N 9 7 8 ー 4 ー 7 7 41 ー 5 66 8 ー 4 C ろ 0 5 5 ◎ 2 8 やねうらお 複製、あるいはファイルに落とすことを禁じます。 本の一部または全部を著者権法の定める範囲を超え、無断で複写、 でお送りください。送料小社負担にてお取替えいたします。 れ ) や落丁 ( ページの抜け ) がございましたら、小社販売促進部ま oftware es•gn 本書の内容に関するご質問は、下記の 宛先まで FAX または書面にてお送り ください。お電話によるご質問、およ び本書に記載されている内容以外のご 質問には、一切お答えできません。あ らかじめご了承ください。 宛先 : 〒 162P 6 技術評論社書籍編集部「ひなた先生 が教えるデパッグが 256 倍速くなるテ クニック ~ 実践的ソフトウェアデパッ ギングの手法 ~ 」質問係 FAX : 0 351 ふ 6167 なお、ご質問の際に記載いただいた個 人情報は質問の返答以外の目的には使 用いたしません。また、質問の返答後 は速やかに削除させていただきます。