簡體   English   中英

無法使用visual studio 2013調試托管代碼(“無法評估表達式”錯誤 - 使用調試版本)(請注意,VS 2012可以正常工作)

[英]Unable to debug managed code using visual studio 2013 (“Cannot evaluate expression” error - am using debug build) (Note that VS 2012 works)

我有針對4.5構建的.net應用程序(GUI和PowerShell)。 我的操作系統是服務器2012.當我將我的應用程序附加到2013 Visual Studio時,調試器有時無法運行。 它沒有評估表達式或顯示本地(並且還觀察窗口/即時窗口沒有任何作用 - 就好像項目是使用發布構建的)。 但我使用'Debug'配置構建。 如上所述,當我簡單地附加VS 2012時,同樣的事情是有效的(是的,我有2k13和2k12 SXS)

請注意,如果我使用相同的設置(托管調試)附加相同的進程,則它始終有效。

我確保加載了符號(通過檢查visual studio + debug + windows中的模塊選項卡),點擊了斷點。

關於可能出現什么問題的任何想法? 所有更新都是最新的。

當我使用VS 2k13 IDE進行開發時,它對於啟動vs 2012只是為了調試而煩人。

問候!

如果您遇到同樣的問題,請查看http://weblog.west-wind.com/posts/2013/Nov/21/Visual-Studio-2013-Could-not-evaluate-Expression-Debugger-Abnormality了解詳情。

以下是為我解決的答案:

我在Tools |中設置了“使用托管兼容模式”標志 選項| 調試器| 一般。

有關詳細信息,請查看鏈接,因為他很好地解釋了這個故事:)

很高興它工作,否則我只需要在vs 2k12中加載項目只是為了調試它很煩人。

編輯於2014年6月12日

我已經使用visual studio 2013 update 2http://www.microsoft.com/en-us/download/details.aspx?id=42666 )更新了我的開發環境(根據Maria的建議)並刪除了“使用托管兼容性”模式”。 我將測試我的應用程序(ps cmdlet,gui,services),如果調試器對我來說可以在幾周內更新你。

編輯於2014年6月26日

我已經測試了我的應用程序,幸運的是對我來說一切都很好:)。 即使調試器在使用新的異步/等待模型方面也做得非常好。 那么,看看你是否可以升級到'更新2' - 希望這也適用於你的環境? 感謝Maria和調試人員的團隊!

問候。

我刪除了所有斷點,然后開始使用Visual Studio 2013 Update 1.這是Dreamer提到的博客文章中的建議之一。

我們已針對您在Visual Studio的Update 2 CTP 2中描述的問題發布了修復程序 -
如果這不能解決您的問題,請告訴我們!

謝謝! Maria - Visual Studio調試器

請注意,雖然接受的答案可能會解決現在的問題,但最好還是要注意這個解決方案的缺點。 進行此更改將使VS 2013為所有項目使用舊式調試器。 這是一個全球性的環境。 還有其他方法可以在單個項目中進行本地更改。 請閱讀此處了解更多信息:

http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013.aspx

我們有一個自定義表達式評估程序和我們自己的語言,即使我將項目設置更改為博客中指定的設置,也會顯示更改設置的警告消息。

 <DebugEngines>{351668CC-8477-4fbf-BFE3-5F1006E4DB1F}</DebugEngines>

還有別的嗎?

我們的客戶正在使用VS2013 pro。 我為所有項目關閉了所有“啟用Visual Studio托管過程”,並將屬性添加到我們的客戶項目中。 每當我攻擊w3wp.exe時,我仍然會看到警告。

重要說明:如果您的項目使用Visual Studio托管過程(許多項目類型的默認設置),則必須禁用此修補程序的托管過程才能正確更改調試模式。 要禁用主機進程,請轉到項目屬性頁面上的“調試”窗格,並取消選中“啟用Visual Studio主機進程”

您可以通過應用以下點來解決此錯誤

索爾1:

1)重新啟動visual studio並重新打開您的項目。
2)打開項目bin目錄並刪除調試器無法正常工作的代碼的DLL。
3)然后再在bin目錄中添加DLL引用。
4)刪除所有斷點。
5)建立項目。
6)附加一個 w3wp.exe進程附加到進程窗口
7)享受你的問題已經解決。


如果以上解決方案不起作用,那么您可以嘗試在波紋管鏈接上提供的解決方案
http://weblog.west-wind.com/posts/2013/Nov/21/Visual-Studio-2013-Could-not-evaluate-Expression-Debugger-Abnormality

我有一個類似的問題調試從創建一個類的返回發生此錯誤。 該類初始化正常(使用“new classname()”)但它在返回時給出了“無法計算表達式”錯誤。 雖然它適用於以前的視覺工作室版本,但在VS 2017上運行它已經完成了。

經過大量的敲擊后,結果發現類中的私有變量,特別是像arraylists和其他類的東西,需要用初始值聲明,即使設置為null

一旦完成,一切都有效,即使解決方案“出現”與問題無關,也沒有明確表明問題發生的地方。

我們在使用VS2013 Update 5的PostSharp擴展版本5.0.32時出現此問題。

我們的解決方法是將PostSharp擴展降級到版本4.3.19或禁用它。

在aspx頭文件上設置AutoEventWireup =“true”。 這將打開調試模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM