我按照here描述的步骤打破外部dll中定义的函数,但是它对我不起作用。也许我错过了一个设置。我怎样才能让它发挥作用?
清单:
- 启用我的代码被禁用
- 外部DLL的符号(System.Data.Entity.dll)似乎已加载(见下文)
编辑:答案是将代码编译为32位。它对我有用,不能说它是否适合他人。
一些注意事项:有一个有用的工具可供了解。它被称为srctool.exe
。它附带适用于Windows的调试工具,并安装在我的机器上的c:\Program Files\Debugging Tools for Windows (x64)\srcsrv
下。您可以在pdb文件上运行它,它将告诉您文件是否已被源索引。如果pdb文件是源索引的,那么pdb文件中嵌入了一个链接,该链接指向可以从中获取源代码的位置。例如,我在srctool.exe中看到了这个输出:
[f:\dd\ndp\fx\src\DataEntity\System\Data\Objects\DataClasses\RelatedEnd.cs] trg: http://referencesource.microsoft.com/source/NET/4.5/net//ndp/fx/src/DataEntity/System/Data/Objects/DataClasses/RelatedEnd.cs/550320/RelatedEnd.cs
如果pdb文件没有源索引怎么办?这是否意味着VS将无法向您展示来源,步入等?我想是的,虽然我不是专家。我发现this链接是半有用的。
无论如何,回来,对我来说,从pdb文件中的嵌入式链接中获取代码意味着运行此命令(VS会给你一个弹出窗口,它会要求你运行命令;如果失败你将不知道;只知道它是否成功的方法是自己从控制台运行它,这会产生错误。
tf.exe view /version:550320 /noprompt “$/[omitted]/[file].cs” /server:http://[omitted] /console > [file.cs]
为了解决这个限制,我从http://referencesource.microsoft.com/netframework.aspx手动下载了.net框架源代码。这里也有一个问题:文件被下载为.aspx,它没有做任何事情。原来你必须重命名为.msi。然后运行可执行文件。请看这个链接:http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/f17c11c1-72f6-4529-bafe-5a1d79b72bd7
我简直无法相信我遇到了多少问题。