Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从生产跟踪中恢复生产线信息_.net_Debugging - Fatal编程技术网

.net 如何从生产跟踪中恢复生产线信息

.net 如何从生产跟踪中恢复生产线信息,.net,debugging,.net,Debugging,我构建一个托管应用程序,并将其部署在最终用户机器上(优化构建,不向最终用户提供PDB)。PDB文件由CI存储在文件共享上 在最终用户发生异常后,我会得到一个错误报告,其中包含带有IL偏移量的堆栈跟踪。对于大多数错误,这足以诊断问题。但是,对于某些例外情况,使用IL偏移量来了解确切问题发生的位置(行号)将非常有用。这可能吗?pdb2xml工具似乎很难找到,而且也不仅仅是将pdb“反编译”为xml,而是使用dll并尝试查找符号(我不知道从哪里查找符号),这在本例中并不是我真正想要做的 System.

我构建一个托管应用程序,并将其部署在最终用户机器上(优化构建,不向最终用户提供PDB)。PDB文件由CI存储在文件共享上

在最终用户发生异常后,我会得到一个错误报告,其中包含带有IL偏移量的堆栈跟踪。对于大多数错误,这足以诊断问题。但是,对于某些例外情况,使用IL偏移量来了解确切问题发生的位置(行号)将非常有用。这可能吗?pdb2xml工具似乎很难找到,而且也不仅仅是将pdb“反编译”为xml,而是使用dll并尝试查找符号(我不知道从哪里查找符号),这在本例中并不是我真正想要做的

System.Exception: [Dummy exception]
   at MyApp.UI!0x0600a7f5!MyApp.UI.MainForm.ThrowDummyException(object sender, EventArgs args) +0x26
   at System.Windows.Forms!0x06003fdb!System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) +0x15
   at System.Windows.Forms!0x06004131!System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) +0x1e
   at System.Windows.Forms!0x06003f9a!System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) +0x42
   at System.Windows.Forms!0x06003fa3!System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) +0xcb
   at System.Windows.Forms!0x06003baa!System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) +0x6f
   at System.Windows.Forms!0x06003dbd!System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) +0x7
   at System.Windows.Forms!0x06000efe!System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) +0x184
   at System.Windows.Forms!0x06000f0e!System.Windows.Forms.Control.WndProc(Message& m) +0x49f
   at System.Windows.Forms!0x06003bdf!System.Windows.Forms.ToolStrip.WndProc(Message& m) +0xe7
   at System.Windows.Forms!0x06003ddd!System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) +0x78
   at System.Windows.Forms!0x06002dec!System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) +0x25 
相关问题:如何在最终用户的机器上创建转储?是否有随windows附带的windows API或实用程序,或者可以轻松地与应用程序捆绑使用?在最终用户的计算机上附加调试器或要求用户安装单独的实用程序不是一个选项

右键单击任务管理器中的程序可以创建一个小型转储,因此似乎不需要安装任何附加的东西就可以做到这一点! 如果我设法获得了一个客户转储文件,我将如何在本地机器上调试它?此时加载的模块将是.ni.dll,我没有.ni.pdb,只有原始的pdb。ni.dll文件是在用户计算机上生成的(例如,使用NGen),但显然,当程序集被NGen时,没有PDB存在