どこで、それが起こっているか?が問題で、ソースコードの一部をコメントアウトするなどして、問題が起きる場合の組み合わせを把握するようにしましょう。とにかくマルチスレッド絡みのデバッグは心身ともにタフでなければ、やっていけません。問題箇所を絞り込むという作業が大切です。
問題箇所を絞り込む事ができたら9割方は解決したようなものです。と言っても破綻しないモデルを考えなければならない場合もありますが…。ここからは、想像力が必要となります。コンテキスト・スイッチが、ここで起こったら?を想像します。アセンブラに近いレベルで考えないといけません。よって、高級言語だけでやってきた人には、しんどい作業かもしれません。
リーダ・ライタ・ロックのデバッグ用に作った、LockTestのプログラムと解説って、いるかな?この話題書くの、ちょっと飽きてきた…。
続くかもしれない
0 件のコメント:
コメントを投稿