【发布时间】:2014-06-24 14:37:22
【问题描述】:
首先,我知道这个问题已经被问过一百万次了,但是由于我没有使用 VB/Visual Studio 的经验,所以我找不到我能理解的解决方案。
我正在创建一个new VB.net project(solution?),并正在从C library 调用dll 文件中的函数。 dll 文件确实有一个 pdb 文件,它们都存储在同一位置。
在下面的代码中,它显示了我如何在 VB.net 代码中声明函数,但我还没有弄清楚如何将 pdb 文件附加到项目中。
Declare Function InitRelay Lib "Z:\Devel\RelayAPI\Debug\RelayAPI.dll" (ByVal setbaud As Action(Of Short), ByVal getit As Func(Of Short, Short), ByVal putit As Action(Of Short), ByVal flushit As Action, ByVal delay As Action(Of Short)) As Byte
Declare Sub FreeRelay Lib "Z:\Devel\RelayAPI\Debug\RelayAPI.dll" ()
...
我在 DLL 文件的某处遇到异常,但是我设置它的方式,我无法调试 dll 文件。无论是添加断点还是打印语句,我都需要一种方法来查看项目在 dll 中的哪个位置失败。
我看过的问题:
-
How to debug a referenced dll - 我尝试按照接受的答案中给出的菜单路径进行操作,但是当我转到 Project >> Project Properties 时,我看不到 Build 选项。它还说如果我不想复制任何文件,我可以直接在 IDE 中加载符号,但我找不到有关如何执行此操作的解释。 编辑 - 正如 Plutonix 在下面所说,C# Build 相当于 VB 的 Compile 选项卡。我检查了一下,我的
Debug Info设置为Full,所以这并不能解决我的问题。 -
Debugging a third-party DLL in Visual Studio? - 这是用
.NET语言讨论DLL,但我的语言是C。它也只告诉你如何查看代码,我已经可以做到了。我可以访问用于创建dll的 .c 和 .h 文件,但我无法在运行时调试它们。
【问题讨论】:
-
属性选项卡在 VB 和 C# 中是不同的。 C# 有一个 Build Tab 代替 VB 的 Compile。你在什么地方编辑/构建 C 项目?
-
感谢您的信息,但没有解决问题。我刚刚检查了我的
Compile Options,该选项已经设置为All。 -
进入C DLL,假设符号可用,启用非托管调试(项目道具->调试->检查
Enable Unmanaged Debugging然后也一定要禁用我的代码(工具->选项-> 调试常规 -> 取消选中Enable just my code(注意名称可能会因版本而异 - 这是针对 VS2012 的) -
它没有
Enable Unmanaged Debugging,所以我检查了Enable native code debugging.这给了我一个新错误,告诉我它找不到 PDB 文件。我可以将 PDB 文件拖到项目文件夹中吗?它已经与.dll文件位于同一路径,我在问题中给出的代码中显示了该文件。 -
您也许可以通过选项 -> 调试 -> 符号手动加载符号...或...默认是将引用的文件复制到 \Bin\ 文件夹;您可以在此处放置一个副本(VS 为其他托管项目复制任何 PDB 的位置)。它曾经被称为
Enable Unmanaged Debugging,对不起
标签: vb.net debugging dll visual-studio-2013