远程调试 - 变量在当前上下文中不存在

Remote debugging - variable does not exist in the current context

提问人:Pietro di Caprio 提问时间:9/11/2018 最后编辑:halferPietro di Caprio 更新时间:9/11/2018 访问量:584

问:

我正在尝试使用远程调试器调试代码。该应用程序位于 .Net Core 中,并在 Linux 中运行。连接工作正常,命中断点。

唯一的问题是我无法读取变量值(当 BP 被击中时),如果我将变量添加到监视列表或使用即时窗口检查该值,我会收到错误,因为变量“在当前上下文中不存在”。

我在 https://github.com/dotnet/core/issues 上找不到参考资料,我会打开一个问题。

编辑

当然,如果我在我的计算机上而不是远程服务器上运行项目,则读取所有变量都不会出现任何问题。当然,远程 DLL 是在调试模式下编译的。

重要提示

在此特定方案中,DLL 加载了反射。由于我在断点方面遇到了一些问题,因此我设置了 and(在 .csproject 文件中)以将所有符号包含在 .dll 中。<DebugType>embedded</DebugType><DebugSymbols>true</DebugSymbols>

在 Git 上打开的问题:https://github.com/dotnet/core/issues/1928

C# NET Visual-Studio 调试 .Net-Core

评论

0赞 Ron Beyer 9/11/2018
您是否有可能远程运行“发布”版本,并在本地运行调试版本?发布版本可能会优化变量,使其不存在。
0赞 Pietro di Caprio 9/11/2018
不,我仅在调试模式下编译并将其上传到服务器。我 100% 确定远程文件处于调试模式。为了确保加载所有符号,我还将 设置到 .csproj 文件中,以便所有符号都包含在 .dll 中<DebugType>embedded</DebugType>

答: 暂无答案