【问题标题】:Debugging C# script调试 C# 脚本
【发布时间】:2015-09-15 14:52:55
【问题描述】:

我的问题是,我们如何调试用 C# 编写的 .dll 脚本?

我为.exe 程序创建了一个.dll,但我遇到了错误,我想调试它,但可以这样做。我可以轻松调试独立程序,但不知道如何调试其他程序的脚本。

该程序是全屏应用程序(它是一个 PC 游戏)。我正在使用 SharpDevelop IDE(尚未安装插件,从主站点下载的纯香草)

是的,我想告诉你,我并没有做任何事情,比如窃取游戏或类似的事情会伤害游戏开发商的盗版行为。仅供个人使用,开发者允许单人模式。

也许你需要的所有信息。我很抱歉我的英语不好,这是我在堆栈溢出中的第一个问题,我不是很天才,只是学习 C#。

谢谢。

【问题讨论】:

  • 你的英文没问题,别担心。我假设你没有 DLL 的源代码,只有编译的库?
  • 不幸的是,这是一个非常广泛的问题;对于 Stack Overflow 来说太宽泛了。您能否将您的问题浓缩为到目前为止您尝试过的内容以及遇到的问题?
  • 也许尝试使用 .net 反射器? red-gate.com/products/dotnet-development/reflector

标签: c# debugging


【解决方案1】:

首先,C# 不是Scripting Language,因为它在运行时编译为CIL 而不是Interpreted,就像python 那样。

要调试 .dll 或 .exe,除了调试器本身之外,您还需要一些东西:

  • 源代码文件。
  • 与 .exe/.dll 和源匹配的 .PDB 文件。

如果您没有使用ReflectorDotPeek 以及可能的其他程序,则可以手动生成这两件事。

可以通过以下方式在 Visual Studio 中调试外部进程:

  • Attach to process(在 Visual Studio 中为CTRL+ALT+P)用于正在运行的进程。
  • Start Extrnal Program 在项目属性的Debug 部分中。
  • 使用corflags 或手动在注册表中设置特定标志。
  • 必要时使用远程调试器。

你可以搜索每一个,因为它真的是一个无限的话题,但我希望你能从答案中得到基本的想法,如果没有,请随时询问。

【讨论】:

    【解决方案2】:

    您是否尝试过“附加到进程”?

    在 SharpDevelop 中,我相信步骤是(不要在这台机器上安装它):

    1. 运行 exe,然后用al+tab退出
    2. 在顶部菜单中导航到 调试 > 附加到进程...
    3. 在出现的窗口中找到exe的运行进程,点击附加

    如果您要反编译,请查看以下问题:How do I decompile a .dll file?

    【讨论】:

      猜你喜欢
      • 2021-01-24
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      相关资源
      最近更新 更多