【问题标题】:C# debugging across dlls跨 dll 的 C# 调试
【发布时间】:2009-03-03 22:44:07
【问题描述】:

我有一个项目,其调用结构类似于:

  • 主要项目/应用
  • 我的图书馆代码
  • 别人的图书馆代码
  • 我的图书馆代码

一切都是用 C# 编写的,我可以访问“别人的库代码”。他们的代码不包含在我的项目中,因为它是开源的,而不是我的代码。我可以制作所有库的调试版本,而且我已经做到了。

“其他人的库代码(我猜是 SELC 吗?)正在以一种 heisen-bug 的方式抛出异常,我正试图追踪它,并可能向项目维护者提交一个错误修复。问题是,我的调试堆栈在我的库代码处停止,并将 SELC 列为“外部”,我无法对其进行调试。我已将 pdb 文件以及库的调试版本复制到我的应用程序的调试目录中,但仍然没有运气;我似乎无法调试他们的代码,我根本无法进入它。

曾几何时,在 vs6 天,我可以做到这一点——在两个不同的环境中同时打开两个不同的项目,并让调试器跨 dll 边界从一个项目跟踪到另一个项目。我认为功能仍然存在,因为它非常有用。

有什么建议吗?

我一直在寻找这个答案,但没有找到,所以如果这是一个骗子,请告诉我去哪里找。

【问题讨论】:

    标签: c# debugging dll


    【解决方案1】:

    您是否在 Visual Studio 的调试选项中打开了“仅我的代码”?

    【讨论】:

    • 这似乎无关紧要。我仍然无法进入他们的代码。
    • 啊,好吧,我必须为这两个项目都这样做。这得了。谢谢!
    • 应该勾选还是不勾选? ...我都将其设置为未选中,但它似乎仍然不起作用...
    【解决方案2】:

    如果您有源代码(我从您那里读到),您可以使用他们的源代码制作一个项目,然后将该项目添加到您的解决方案中。 在 Visual Studio 中,项目在 .csproj 文件中,解决方案在 .sln 文件中。

    【讨论】:

    • 是的,正如我所说,我不想这样做,因为它不是我的来源。我想使来源彼此不同。我知道我可能无法这样做,但仍然 - 在 vc6 中我可以做这种事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    相关资源
    最近更新 更多