【问题标题】:Visual Studio: how to debug a library with an external executable?Visual Studio:如何使用外部可执行文件调试库?
【发布时间】:2011-04-21 16:45:15
【问题描述】:

我正在开发一个类库。该库将由另一个程序使用,即没有源代码的 .exe。库文件位置作为参数传递给此 exe,例如通过运行:prog.exe lib.dll

我想使用这个 .exe 调试库(使用调试工具,例如断点等)我如何使用 Visual C# 来做到这一点?

我找到了一种可能的方法,即创建一个执行prog.exe lib.dll 的单行程序。肯定有更好的方法吗?

【问题讨论】:

    标签: .net visual-studio debugging class-library visual-c#-express-2010


    【解决方案1】:

    在项目的调试选项中选择“启动外部程序”并输入exe的路径。在开始调试时,VS 将启动 exe,作为调试器附加到它。

    当你的库被加载时,你代码上的任何断点都会被激活。

    一个警告:使用外部程序确保它正在加载您正在构建的 dll,如果它正在加载与源代码不匹配的不同版本,事情可能(充其量)奇怪。

    【讨论】:

    • “启动外部程序”没有出现在项目的调试选项中。我只有命令行参数和工作目录。我尝试将程序路径添加到命令行参数,它仍然不允许调试。
    • @Louis:这可能是个问题(没有快递,所以无法检查)。
    【解决方案2】:

    如果您已经有一个使用您的库的外部程序(我假设它也是一个 .net 应用程序),您可以启动该程序并将调试器附加到进程(调试 -> 附加到进程在菜单中)。然后,您将能够在类库代码中设置断点并对其进行调试。确保 exe 使用与您的代码同步的 dll 和 pdb 文件(最新版本)。

    【讨论】:

    【解决方案3】:
    1. 你或许可以试试windbg。借助 sos 扩展,您使用 Visual Studio 所做的一切几乎都成为可能。
    2. 如果您只想调试库,那么为什么不能将该库加载到您创建的 exe 中并进入库,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 2015-07-24
      • 1970-01-01
      • 2014-06-12
      相关资源
      最近更新 更多