c# - 异常堆栈跟踪没有行号
问题描述
我发现了一个奇怪的问题,NetCore
即当您在服务器上运行应用程序时没有添加行号,堆栈跟踪没有行号。我使用创建一个console
应用程序dotnet new console
,添加了以下代码:
using System;
namespace bar2
{
class Program
{
static void Main(string[] args)
{
try
{
throw new InvalidOperationException("some error");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}
后来我使用dotnet run
上面的代码将打印:
System.InvalidOperationException: some error
at bar2.Program.Main(String[] args)
请注意,如果您在 linux 上执行它,则没有行号(pdb 文件在文件夹中可用)。
我怎样才能解决这个问题?对于生产应用程序真的很难复制错误,因为每次我不知道文件行号时,我只看到错误......
NetCore Info .NET 命令行工具 (2.1.200)
Product Information:
Version: 2.1.200
Commit SHA-1 hash: 2edba8d7f1
Runtime Environment:
OS Name: ubuntu
OS Version: 16.04
OS Platform: Linux
RID: ubuntu.16.04-x64
Base Path: /usr/share/dotnet/sdk/2.1.200/
Host (useful for support):
Version: 2.1.1
Commit: 6985b9f684
.NET Core SDKs installed:
2.1.200 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
我还尝试了设置“仅 pdb”的调试和发布模式。
解决方案
进入要查看堆栈跟踪行号的项目的“属性”窗口。
单击构建“垂直选项卡”。
选择“发布”配置。
- 取消选中“优化代码”参数以避免内联代码偶尔出现跟踪问题(此步骤不是必需的)。
- 按 Advanced... 按钮并选择 Output -> Debug Info -> pdb-only。
- 使用程序集部署生成的 .pdb 文件。
使用以下评论实现:
- 要检查的另一件事是在“打包/发布 Web”部分中,“排除生成的调试符号”复选框也未选中
有关更多信息,请查看以下链接:
推荐阅读
- python - 使用 pandas 将两个数据框与一排一排,然后是另一排另一排结合起来
- vue.js - 如何使用 Phaser 3 和 Webpack 正确加载图像和精灵表?
- python - 如何在运行时检查 Python 代码以进行错误的数据类型比较
- transpose - 如何转置多个 xlsx 文件(每个文件中有多个选项卡),并在 Excel Power Query 中组合?
- javascript - 这个正在解码十六进制字符串然后将其编码为 base64 的 Python 代码将如何用 Javascript 编写?
- c++ - Why delete a class without virtual dtor is OK if it inherits a class with virtual dtor
- reactjs - match.path 支持在根 URL 中尊重 basename(/defaultPathname) - https://example.com/defaultPathname
- objective-c - 以编程方式获取 NSView 或 NSWindow 屏幕截图?
- asp.net - 在 React 和 .NET 中跟踪用户操作
- docx - 如何格式化 pandoc 生成的 docx 文档中的列表?