不能在方法中的某些行上设置断点。 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"


在下一行代码中,可以设置一个断点并且它可以工作(并中断)。

此外,当我在下一行中断并尝试在 billingAmountsDueaccountNumbersUser 上使用快速观看时,我得到:

"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)”的选项。

这个选项也可以在工具->选项->调试->常规下找到。