Tro*_*ley 0 c# debugging breakpoints visual-studio
使用 Microsoft Visual Studio Professional 2019 版本 16.4.2
解决方案配置设置为“调试”,
在“项目属性”->“构建 - 优化代码”下未选中
“高级构建设置”->“调试信息”设置为“完整”
步骤:
1. 清理解决方案
2. 重建解决方案
3. 发布适当的项目
4. IISReset
5. 附加到进程 (w3wp.exe)
在“调试”->“Windows”->“模块”中验证 dll 的“符号已加载”。
我可以在某些行上设置断点,但不能在其他行上设置断点。
得到:
“断点绑定失败”
在代码的下一行,可以设置断点并且它可以工作(并中断)。
另外,当我在下一行中断并尝试使用 Quick Watch on 时billingAmountsDue,accountNumbers或者User我得到:
“无法获取局部变量或参数的值,因为它在此指令指针处不可用,可能是因为它已被优化掉。”
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()
Run Code Online (Sandbox Code Playgroud)
在“调试”->“Windows”->“模块”中,我注意到“优化”是"Yes"针对我尝试调试的模块。
解决办法是:
右键单击模块并选择符号设置。在常规下选择“ ”选项Suppress JIT Optimization on module load (Managed Only)。
该选项也可以在“工具”->“选项”->“调试”->“常规”下找到。
| 归档时间: |
|
| 查看次数: |
1670 次 |
| 最近记录: |