不能在方法中的某些行上设置断点。 Quickwatch 不适用于某些变量
Breakpoints can't be set on certain lines in the method. Quickwatch not working for some variables
使用 Microsoft Visual Studio Professional 2019 版本 16.4.2
解决方案配置设置为调试
在 Project Properties->Build - Optimize Code 下未勾选
Advanced Build Settings -> Debugging Information 设置为 Full
步数:
1. 清洁解决方案
2.重建解决方案
3.发布合适的项目
4.IIS重置
5.附加到进程(w3wp.exe)
已在调试中验证->Windows->dll "Symbols loaded" 的模块。
我可以在某些行上设置断点,但不能在其他行上设置断点。
获取:
"The breakpoint failed to bind"
在下一行代码中,可以设置一个断点并且它可以工作(并中断)。
此外,当我在下一行中断并尝试在 billingAmountsDue
、accountNumbers
或 User
上使用快速观看时,我得到:
"Cannot obtain value of the local variable or argument because it is
not available at this instruction pointer, possibly because it has
been optimized away."
public IEnumerable<Account> GetAllAccounts()
{
var user = GetCurrentUser(); //Breakpoint doesn't work on these 3 lines
var accountNumbers = GetAccountNumbersForUser(user);
var billingAmountsDue = AsyncHelpers.RunSync(() => _billingService.GetBillingForAccounts(accountNumbers.ToArray()));
//Breakpoint on following line works
var accounts = user.Accounts.Join(billingAmountsDue, b => b.AccountNumber, a => a.AccountNumber, (a, b) => new Account()
在 Debug->Windows->Modules 中,我注意到 Optimized 是 "Yes"
我试图调试的模块。
解决方法是:
右键单击模块并选择符号设置。在常规 select 下,“Suppress JIT Optimization on module load (Managed Only)
”的选项。
这个选项也可以在工具->选项->调试->常规下找到。
使用 Microsoft Visual Studio Professional 2019 版本 16.4.2
解决方案配置设置为调试
在 Project Properties->Build - Optimize Code 下未勾选
Advanced Build Settings -> Debugging Information 设置为 Full
步数:
1. 清洁解决方案
2.重建解决方案
3.发布合适的项目
4.IIS重置
5.附加到进程(w3wp.exe)
已在调试中验证->Windows->dll "Symbols loaded" 的模块。
我可以在某些行上设置断点,但不能在其他行上设置断点。
获取:
"The breakpoint failed to bind"
在下一行代码中,可以设置一个断点并且它可以工作(并中断)。
此外,当我在下一行中断并尝试在 billingAmountsDue
、accountNumbers
或 User
上使用快速观看时,我得到:
"Cannot obtain value of the local variable or argument because it is not available at this instruction pointer, possibly because it has been optimized away."
public IEnumerable<Account> GetAllAccounts()
{
var user = GetCurrentUser(); //Breakpoint doesn't work on these 3 lines
var accountNumbers = GetAccountNumbersForUser(user);
var billingAmountsDue = AsyncHelpers.RunSync(() => _billingService.GetBillingForAccounts(accountNumbers.ToArray()));
//Breakpoint on following line works
var accounts = user.Accounts.Join(billingAmountsDue, b => b.AccountNumber, a => a.AccountNumber, (a, b) => new Account()
在 Debug->Windows->Modules 中,我注意到 Optimized 是 "Yes"
我试图调试的模块。
解决方法是:
右键单击模块并选择符号设置。在常规 select 下,“Suppress JIT Optimization on module load (Managed Only)
”的选项。
这个选项也可以在工具->选项->调试->常规下找到。