C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: デバッグで変数内容が確認できない現象


(過去ログ 63 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■36231 / inTopicNo.1)  デバッグで変数内容が確認できない現象
  
□投稿者/ 鶏唐揚 (332回)-(2009/05/25(Mon) 18:02:42)

分類:[.NET 全般] 

[発生言語]VB2005

お世話になっております

今回、実行中にブレイクさせて値を確認するため、
イミディエイトウィンドウに変数を打ち込んだのですが、
「ガベージ コレクションが実行できない場所で停止したため、式を評価できません。
 現在のメソッドのコードが最適化されている可能性があります。」
と出て確認できませんでした。

どうも参照型は全部見れなくなっているようです(値型は表示できた)

いろいろ調べたところ、VSが把握するデータが多すぎると発生するらしい とありましたが
エラー内容が微妙に異なる上、ASP.NETに関する記事だったので該当するのか不明です。

このような現象の詳細と解決法をご教示お願いいたします
引用返信 編集キー/
■36232 / inTopicNo.2)  Re[1]: デバッグで変数内容が確認できない現象
□投稿者/ 囚人 (360回)-(2009/05/25(Mon) 18:15:49)
エラーメッセージ通り最適化しているのでは?

引用返信 編集キー/
■36233 / inTopicNo.3)  Re[2]: デバッグで変数内容が確認できない現象
□投稿者/ 鶏唐揚 (333回)-(2009/05/25(Mon) 19:02:34)
No36232 (囚人 さん) に返信
> エラーメッセージ通り最適化しているのでは?
それはわかっています^^;
なぜ勝手に最適化されているか、またその勝手な最適化を逃れるにはどうすればいいか、
で悩んでいます

ビルド構成はDebugで、最適化はOFF、デバッグ情報はFullですが
メソッド単位で勝手に最適化されたりするものなんでしょうか?
(このあたりは無知)

他のメソッドは無事であったり、値型は無事見れたりするのもよくわかりません。

よろしくお願いします
引用返信 編集キー/
■36234 / inTopicNo.4)  Re[2]: デバッグで変数内容が確認できない現象
□投稿者/ ぱぱいやん (30回)-(2009/05/25(Mon) 19:08:01)
ぱぱいやん さんの Web サイト
2009/05/25(Mon) 19:16:41 編集(投稿者)

No36232 (囚人 さん) に返信
> エラーメッセージ通り最適化しているのでは?
>

となると IL の確認ですね。

引用返信 編集キー/
■36236 / inTopicNo.5)  Re[3]: デバッグで変数内容が確認できない現象
□投稿者/ 鶏唐揚 (334回)-(2009/05/25(Mon) 19:18:18)
No36234 (ぱぱいやん さん) に返信
> MethodImpl属性を付けてみるとか・・・
> でも最適化が原因かどうかをまず調べた方が良いかもしれませんね。
ズバリなメッセージで検索しても出てこないので
地道な調査になりそうです…

ちなみにMethodImplでNoInlineを付けてみましたがダメだったので、
最適化が原因ではないかもしれません。

調査していきますが、何か情報がありましたらご教示お願いします
m(_ _)m
引用返信 編集キー/
■36246 / inTopicNo.6)  Re[4]: デバッグで変数内容が確認できない現象
□投稿者/ ぱぱいやん (31回)-(2009/05/26(Tue) 11:06:39)
ぱぱいやん さんの Web サイト
No36236 (鶏唐揚 さん) に返信
> ■No36234 (ぱぱいやん さん) に返信
>>MethodImpl属性を付けてみるとか・・・
>>でも最適化が原因かどうかをまず調べた方が良いかもしれませんね。
> ズバリなメッセージで検索しても出てこないので
> 地道な調査になりそうです…
>
> ちなみにMethodImplでNoInlineを付けてみましたがダメだったので、
> 最適化が原因ではないかもしれません。
>
> 調査していきますが、何か情報がありましたらご教示お願いします
> m(_ _)m

Debug モードで生じているのでインライン化による最適化はあんまり関係ないかなー、と思って途中でメッセージを削除したのですが、しっかり見られていたんですね^^;
(で、やっぱり違っていたと^^;)

最適化によって目的のインスタンスへの変数が除かれている可能性よりも、GC の手の届かない場所で停止したことによって値が確認できない可能性の方が高いのかもしれませんね。

ターゲット変数に関して、停止付近のILの確認をしてみたり、ターゲットとなる変数を他のメソッドに引き継いで停止させる場所を変えてみることから始めてみてはいかがでしょうか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -