由於線程停在某個無法進行垃圾回收的點(可能是因為已對代碼進行了優化),因此無法計算表達式的值.
先說下我出現這個異常情況的條件:我是在做WEB服務接入時,發生的,為了調用接口的方法,我先封裝了一次,封裝方法有2個參數,都是類類型。其它的這種方法都可以,只有這一個接口不通過。例如這個封裝的方法叫M1,那它是這樣的M1(class1 c1,class2 c2),其中在調用它時,c1,c2都是正常的,屬性和字段都有值。但跟蹤到這個方法時,通過看c1,c2的值會發現c1,c2中的屬性就會有:由於線程停在某個無法進行垃圾回收的點(可能是因為已對代碼進行了優化),因此無法計算表達式的值
但字段是好的。當時我想難道是類型屬性的問題,又一行一行的檢查了一下,發現沒有問題啊。於是把兩個類中的成員全注釋。發現還是有這個問題。
在網上搜索了一些內容,沒有任何幫助,都是按情況解決的。不具有通用性。
通過這個例子,看到構造器時,靈光一閃,終於發現了問題所在。原來是構造器的參數過多造成的。這個接口有150多個屬性,所以我構造了一個150個參數的構造器。
改過之后,就好了。
所以,出現這個問題,所得經驗如下:
1 與計算機系統無關,
2 與vs2008環境無關
3 與vs2008配置項無關
4 檢查代碼吧,是代碼的問題。