是否可以在.Net CF 2.0或3.5上获得堆栈跟踪的行号

时间:2008-10-31 20:15:57

标签: .net

我有一个.Net CF 2.0应用程序,我使用log4net来记录错误。我得到一个堆栈跟踪,但它没有任何行号。我注意到它似乎没有将pdb文件部署到设备,所以我尝试手动将它放在与exe相同的目录中。但这没有帮助。

3 个答案:

答案 0 :(得分:1)

我不确定.Net CF是否会打开pdbs。此外,我不确定您是否要将它们部署到设备上。如果你很勤奋,你可以创建一个工具来将带有il偏移的callstack转换为带有#行的一个。我在Mike Stall的博客上建议这个post,该博客提供了从托管pdb中提取信息的代码。一旦你有了偏移地图的线,就可以使用工具来处理这些调用堆栈。

答案 1 :(得分:0)

你是否曾尝试将异常包装起来,并将它们包装在新的异常中; link

try {
       //code..

     }
 catch
     {          
        throw;
      }

答案 2 :(得分:0)

在项目属性下,选中Build选项卡,然后选择Advanced ...然后将Debug info下拉菜单更改为full。这些应该是Debug配置的默认设置,因此如果您在Release下构建,请确保已启用这些设置。

祝你好运。