我有一个在我的机器上运行完美的可执行文件。它恰好是使用Visual Studio 2015社区创建它的机器。
但它无法在其他计算机上运行并创建“程序已停止工作”和“您是否要发送有关该问题的更多信息”消息。
如何将此程序中的所有调试信息捕获到一个文件中,以便找出程序中断的位置。它在promgram.cs文件运行之前似乎失败了,因为我已将msgbox作为它永远不会到达的第一行,所以我只能假设它在初始框架加载期间失败或类似。
答案 0 :(得分:1)
我相信您需要应该使用该应用程序创建的原始PDB文件。这里有一篇相关的帖子: How do I use PDB files
答案 1 :(得分:1)
有几种方法可以做到这一点:
重要提示:您必须拥有有效的调试符号才能查看源文件,拥有有意义的调用堆栈帧和命中断点。如果您在构建应用程序时仍然没有生成pdb,则可以重新构建并将新构建的exe复制到其他计算机上。
在应用崩溃的机器上写一些注册表值,让它崩溃。将转储文件复制到开发计算机,然后使用Visual Studio将其打开以进行调试。
使用以下命令开始 - 您必须更换" YourApp.exe"与您的exe的实际名称。转储的默认目录是%LOCALAPPDATA%\ CrashDumps
reg add "HKLM\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\YourApp.exe" /v DumpType /t REG_DWORD /d 2
有关完整详情,请参阅Windows documentation。
在应用程序崩溃的计算机上,安装Visual Studio远程工具并启动远程调试程序。
在您的开发机器上,启动Visual Studio,打开项目(Ctl + Shift + o),然后选择您的应用程序的exe文件。 (它需要匹配确切的完整路径作为崩溃的机器,因此您可能必须创建一些目录和一个空文本文件并将扩展名更改为.exe)
示例:如果您的应用程序位于E:\ Program Files(x86)\ MyCoolApps \ bin \ MyCoolApp.exe的完整路径,则必须在完全相同的位置创建一个文件(可以为空)你的开发机器即使同一个应用程序已经位于C:\ Program Files(x86)\ MyCoolApps \ bin \ x86 \ MyCoolApp.exe
打开项目属性(在解决方案资源管理器中右键单击项目节点)
使用适合您环境的值填写相应的字段(以粗体显示)。您应该将调试器类型更改为您的exe(管理C#/ VB或Native for C / C ++)。
现在您已准备好在调试器下启动您的应用。点击F5进行调试就像在Visual Studio中的任何其他项目一样。