如何使用Deblector?

时间:2009-01-22 21:35:23

标签: .net debugging reflector

我正在使用第三方框架,代码非常糟糕,而且我得到了一些我无法弄清楚的异常。我能够使用.NET Reflector进行反编译,现在我正在尝试使用Deblector进行调试,但我甚至无法弄清楚如何设置断点。为什么没有此工具的文档?

没有任何关于如何使用它的信息。内置的帮助只是提供了一个命令列表,我理解得很好,因为它们是标准的调试器命令......但我无法弄清楚如何让它工作,所以我可以单步执行代码,我需要也检查变量。

我一直在谷歌搜索很长一段时间,所有我能找到的是博客说这个工具有多精彩。嗯,我相信如果我能让它发挥作用会很酷。文档在哪里,或者我如何设置断点?

我可以将它附加到我的进程,但我无法暂停或任何事情,并且当异常发生时它不会中断,即使我已经激活了该选项。

说真的......我们应该做一些文档 - 我会将它们发布到Google可以访问的地方。

2 个答案:

答案 0 :(得分:8)

也许这会对你有所帮助:

首先,我使用来自http://www.codeplex.com/deblector DeblectorAddin-1.01-Alpha (我不知道它是否在旧版本中也是如此)。

使用此版本,通过以下步骤非常简单:

  • 附加到流程

    • 在命令行中使用 a [ttach] 命令: a< pid>
    • 使用工具栏中的附加按钮(带有齿轮的窗口)。
  • 如果附加成功(您在控制台中看到此内容,使用Tools-> Deblector激活),则应加载所有引用的程序集。

  • 设置断点(您必须暂停程序以设置断点):

    • 使用 b [reak] 命令:例如 b< Namespace.Class.Function> - 还有更多选项可供帮助b 使用。
    • 更简单:使用Break按钮(或 F9 )并在Deblector IL视图中选择一行。

其他使用说明:

Deblector Commandline:
如果您当前已连接到某个进程并且正在运行,则命令行将不会响应,您必须先停止,否则它将无法正常响应。

对于64位平台:
必须将应用程序设置为以32位应用程序运行,否则无法将其附加到。

在Visual Studio中:项目 - >属性 - >构建平台目标:x86

使用corflags工具:这应该与Visual Studio一起安装(使用Visual Studio命令提示符)。

 To set 32-bit mode: corflags <ProgramName> /32BIT+ 
 To unset it:        corflags <ProgramName> /32BIT-

查找进程ID并检查程序是以32位还是64位方式运行
Process Explorer对此非常有帮助。

答案 1 :(得分:0)

现在有了Reflector Pro,就是这样。它将托管程序集反编译为C#或VB.NET,并创建必要的PDB。然后,您可以设置断点并逐步进入您喜欢的任何托管程序集。

http://www.red-gate.com/products/reflector/walkthrough.htm