Grasshopperのコンポーネントのデバッグをはじめようとしたら、以下のメッセージが表示されました。
リリース ビルド TEST_001.gha デバッグ中です。コンパイラによる最適化を使用するリリース ビルドで「マイ コードのみ」を使用すると、デバッグ機能が低下します(例: ブレークポイントがヒットしない)。
で、これってナニ?メッセージを読んでも意味が分からないんだけど?
原因
調べてみると、呼び出し元のRhino、Grasshopperがリリースモードでビルドされているため、デバッグが制限される警告のようです。
デバッグしたいのはGrasshopperのコンポーネント(Grasshopper Assembly、以下GHA)なんだけど、これはRhino、Grasshopperから呼び出す構造です。
Rhino/Grasshopper → コンポーネント
GHAをデバッグモードでビルドしても、呼び出し側のRhino/Grasshopperはリリースモードでビルドされています。そこについてはデバッグできませんよ。マイコード(つまり、自分が書いたコードのみの意味?)のみじゃなくて、他のコードも含んでますからね。というような状況のようです。
対策
以下、対策です。
対策1 そのまま実行
表示された選択肢から「[マイ コードのみ]を無効にして続行」を選んで、そのままデバッグを継続する。
マイコード以外も関連しているから、そっちは無視して実行になります。
とはいえ、メッセージも選択肢も分かりにくい。
これだと次回、もしくは新しいコンポーネントのプロジェクトをはじめたときに同じメッセージが表示されます。毎回見たくない場合は、次の対策へ。
対策2 Visual Studioの設定を変更する
「デバッグを中止」を選んで、いったんデバッグを停止する。
Visual Studioのメニューから「ツール」→「オプション」を選んで、
- 「デバッグ」の項目を選択
- 「マイ コードのみを有効にする」のチェックを外す
これ以降、マイコードのメッセージは表示されなくなります。
まとめ
Rhino/Grasshopperのコンポーネントのデバッグで表示されましたが、DLLのデバッグでも呼び出し側がリリースモードだと同じワーニングが表示されるはずです。
市販製品のプラグインを作るケースではありがちな状況です。分かりにくいメッセージはともかく、設定で回避することができます。
動作環境
以下の環境で動作を確認しています。
- Windows11 Pro(64bit, 24H2)
- Rhinoceros 8 SR22
- Visual Studio Professional 2022 Version 17.14.13 (August 2025)