好的,奇怪的情况:我需要调试一个VSTO Office Addin。这是用Visual Studio 2008 Professional编写的,通常通过加载项目,附加到Outlook.exe并设置断点来完成调试 - 工作正常。
但是我给出的情况是它在一台机器上没有按预期工作,但是我没有VS2008 Pro在那台机器上(只有Express才有帮助,但是express不会加载项目,因为Project类型不受支持) ,没有机会使用远程调试器。
我只是想知道是否有可能在没有加载项目的情况下仍然可以调试它,因为我已经“使用.pdb文件,源代码和.dll”用于此目的。
编辑:只是为了澄清,它不是一个例外,它是一个if / else块进入else块,即使它不应该。我需要设置一个断点并检查一些.net变量,甚至可能修改它们。
答案 0 :(得分:2)
WinDbg将能够做到这一点,但它并不完全是用户友好的。
答案 1 :(得分:2)
另一个简单的技巧:向代码添加跟踪消息(System.Diagnostics.Trace
)。您将能够使用来自Sysinternals / MS的DbgView监控所有跟踪消息。
可能无法单步执行代码,但在分析目标系统上没有调试器的问题时,这非常方便,例如在客户现场。
答案 2 :(得分:1)
如果使用调用堆栈记录异常,那么您将拥有行号和源文件。 如果您可以在计算机上部署新代码,请在代码中添加一些额外的日志记录/跟踪。
如果这不起作用,请使用WinDbg检查内存转储,并使用SOS Debugging Extension。
编辑:Hawkeye.Net也可能对您的情况有所帮助。