使用Windows调试器调试C#源代码

时间:2014-03-11 17:10:43

标签: c# debugging windbg

很抱歉,如果这是重复的,from what I see则不可能。但在任何情况下都可以使用带有正确符号的Windows调试器附加C#的源代码吗?我知道我们可以使用!name2ee将断点放在不同的函数上,但是有没有办法真正实现像vb或C ++这样的C#代码?或者有其他方法可以实现相同的目标吗?

3 个答案:

答案 0 :(得分:3)

有一个加载符号的命令,但我不记得它是什么。我记得你需要pdb和source来使它工作。

如果您有代码并想要介绍为什么不使用Visual Studios?您可以免费下载快递版。此外,如果需要,Visual Studio将允许您附加到已经运行的进程。

答案 1 :(得分:3)

使用Windbg(或ntsd或cdb)不可能。请在2008年使用主题行"No CLR support in the latest debugger release"查看来自旧的microsoft.public.windbg新闻组的旧帖子。一位微软员工谈论了这个的历史和原因,有趣的是,一个版本的windbg意外地滑落了,实际上有这种能力(然后被删除)。这是链接:https://groups.google.com/forum/#!topic/microsoft.public.windbg/A1MKBkM3L2Y

答案 2 :(得分:1)

不像非托管源代码步进那样方便,但也许没问题。

.symfix x:\symbols
.sympath+ x:\mypdbs
.srcpath x:\mysource
.reload
.loadby sos mscorwks;.loadby sos clr
.load sosex; *** Download SOSEX, use full path if necessary

然后打开源代码,文件/开源文件(Ctrl + O)。

!mbp MySourceFile.cs 77; *** 77 is the line number
g

等到断点被击中,然后尝试

!mt; *** managed step into
!mgu; *** managed go up