You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP调试构建中Exception.ToString()与Environment.StackTrace缺失行号问题

UWP调试构建中StackTrace缺失文件名和行号的解决方法
  • 确认项目调试信息生成设置:
    右键项目→属性→生成→高级→调试信息,选择完整(Full)。UWP项目默认可能未设置为完整,这会导致Exception.ToString()和Environment.StackTrace无法获取行号信息,即便调试器能加载符号。

  • 关闭调试构建的代码优化:
    在项目属性的生成选项卡中,确保未勾选优化代码。代码优化会打乱代码结构,导致行号映射失效,即便符号加载正常,也无法在堆栈跟踪中显示行号。

  • 使用StackTrace类强制获取行号:
    UWP中Environment.StackTrace默认不包含文件和行号,可通过System.Diagnostics.StackTrace的重载构造函数主动捕获:

    var stackTrace = new System.Diagnostics.StackTrace(exception, true);
    foreach (var frame in stackTrace.GetFrames())
    {
        string fileName = frame.GetFileName();
        int lineNumber = frame.GetFileLineNumber();
        // 按需拼接堆栈信息
    }
    

    第二个参数true表示启用文件和行号捕获,只要PDB符号完整就能获取到对应信息。

  • 检查PDB文件的生成与部署:
    确保调试构建时生成了对应的.pdb文件,且与应用包在同一目录。UWP调试包部署时,PDB文件需同步部署到调试环境,否则运行时方法无法读取行号信息。

内容的提问来源于stack exchange,提问作者BCA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 23:34:54