あなたの天然記念物 ホーム更新雑談鉄ゲタランドナーコースガイド自転車JKFFハードソフトダウンロードLinuxリンク(Amiga)リンク(その他)連絡先経歴
←前 次→ 目次 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
デバッグ勝負に勝つ (2004.02.06)

職場の設備管理用のコンピュータソフトにささやかなトラブルがあって、ソフト業者さんに調子を見てもらいました。
トラブルの発生条件がなかなか見つからず苦戦していましたが、私と業者さんとで色々実験、相談しているうちに特定できました。
簡単に言うと、ソフト起動後、処理Aの後に処理Bを実行すると百発百中でした。

私はこれで業者さんも原因を突き止められるだろうと安心していたら、ちっとも原因を見つけてくれません。で、「原因がわかり
ません。」だって。ユーザのマシンに開発環境入れたまま納品して、その中で再現できるのに原因がわかんねーだぁ?
再現できてるクセに原因がわかんないようじゃ、業者(以後、呼び捨て)に会社で調べさせても無理なんで、現場で原因を
調査することにしました。

業者がそれっぽい所を眺めているのを横から見ていて、気が付きました。処理AではAssignFile()の後でFileModeに0代入だって。
処理BにはFileModeの代入はなかった。もしこのFileModeがクラスのメンバ変数だとして、APIと同じ名前のメンバ関数内でFileMode
見てたら、やっかいだなぁ。そこで、業者に質問「処理AでFileModeに代入してるけど、これのスコープは?」検索かけても業者の
コードに定義がなく、ヘルプファイル見てびっくり。処理系のグローバル変数だって。今時あんのかそんなもん。

ソフト起動時はFileModeが2で処理Bをするとうまく動作するけど、処理Aをすると0になり、その後で処理Bでトラブルに。処理Aの
最後で2に戻すようにしてもらったら、途端に再現しなくなりました。「はい、技術料5,000円。(と手を差し出す)」(笑)
業者がわからないバグを高々10分で見つける技術は、いくらの価値があるでしょう?というか、日給6,000円の「電気のおじさん
(私)」にソフト業者が負けていいのか。職業プログラマ辞めて早4年、だが若いモン(経験15年以下)にはまだまだ負けない。

今度、原因が突き止められなかったら、こっちでコッソリ改良するぞ(爆笑)。
あ、それじゃ何のためにWi(おえぇぇ)wsから足洗ったかわかんないや。あーやめやめ。
←前 次→ 目次 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182

どのページも無断でリンクして構いません。
Valid HTML 4.01 Transitional