VS2005の不可解なブレークポイント
VS2005 SP1のインストールで苦労した話を以前したが、SP1で直ったかもしれないと思っていた「病気」がまだ直っていないことが分かった。それは、どういうわけかソースに「ブレークポイントが張れない」現象である。
VS2005でC++のデバッグを始めた直後は頻繁に発生し、かなり悩んだが、そのときにはソースをShiftJISから丸ごとUnicodeに変換したら出なくなったので、恐らくこの辺の問題だろうと推測していた。
SP1をあてた後、しばらく平和な日々だったのだが、最近また発症してしまったので、現在色々試しているのだが、ひとつ法則が見えてきた。どうも、
ソースコードが奇数バイトの場合にブレークポイントが張れなくなるらしい
ということである。ロジックとは全く関係の無いコメントやタブを触って、ソースのバイト数を増減したところ、偶数バイトでOKで、奇数バイトでNGとなるからだ。これはこれで貴重なノウハウなので、緊急回避策として忘れないようにしたいと思う。
しかし、これは一体何なんだろうか?ソースをUnicodeにしているので、これと関係があるような気もする。しかし、しばらく平和な日々が続いたのが何故か、というのも解せない。もしかすると、長大な関数がソース内に登場すると、呼び起こしてしまうのだろうか。そしていつまで続くのだろうか。うーむ、困ったものだ。