定義へ移動がバグる


セルムン  2005-12-05 23:54:41  No: 59874

.NET2003でC++で開発しています。

関数や変数の定義場所へジャンプする「定義へ移動」が最近バグって
きました(あいまいさの解決ダイアログで全然関係ないシンボルが
表示される)。

昔はちゃんと正しく動作していたと思います。また正常に動作するシ
ンボルと駄目なシンボルがありますが、特にその2つのシンボルの定
義方法に違いがあるようには見えません。ソリューションの消去を行
っても正常動作に復活しません。

ソースが増えてきた(現在8万行ぐらい)のが原因なのかなとも思う
のですが、同様の症状に合って解決方法がわかった方はいらっしゃら
ないでしょうか?


KING・王  2005-12-06 03:34:32  No: 59875

VC6のはなしですが、1つのファイルの行数が約6万行(おそらく65535行)を超えると、
検索などが上手くいかなかったと思います。

> ソースが増えてきた(現在8万行ぐらい)

が1ファイルかどうか、わかりませんが、もし1ファイルなら、
一度ファイルを分割してみては?


セルムン  2005-12-06 04:35:13  No: 59876

返答有難うございます。

一応ソースは20ファイルぐらいに分割されてまして、1ファイルで
1万行を超えているファイルはありません(通常5千行ほど)。

>1つのファイルの行数が約6万行(おそらく65535行)を超えると、
何かこういう制限がありそうな気はするのですが…シンボル数が6万
を超えると駄目とか…


PSB  2005-12-06 08:55:44  No: 59877

ncbファイルを一度消してみたらどうでしょう。


セルムン  2005-12-07 05:27:12  No: 59878

>ncbファイルを一度消してみたらどうでしょう。
残念ながら駄目でした。ちなみにこれとは別件で、たまにインテリセンスがおかしくなったいたのですが、それはこれで直りそうですね(ヘルプ読むと)。貴重な情報有難うございます。

ちなみにその後色々調べてみまして、一応正常に動作するシンボルと駄目なシンボルの違いがわかりました。正確にはシンボルの違いではなく

・クラス関数の中のソースでジャンプすると正常動作
・外部関数の中のソースでジャンプするとバグる

という状況でした。全く同じシンボル(関数名やenumなど)でジャンプしても、クラス関数内と外部関数内で動作が変わります。ちなみにそのバグですが、windows.h等に定義されているシンボルが「あいまいさの解決」ダイアログに大量に表示されます。

記憶が確かなら昔は外部関数の中のソースでも正常動作していたと思うのですが、現在のプログラムを書き始めて既に1年以上経っているため、100%の自信はありません。

どなたかこういう現象に心当たりのある方はいらっしゃいますでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加