c-如何使用调试器跟踪win32 API程序中的系统调用(VS 2013)



好吧,我用Win32 API为文件I/O编写了一个代码。(我使用的是Visual studio 2013)

它只得到两个文件名(一个用于源,一个用于目标),并将一个文件名复制到另一个文件。

我使用了CreateFile、ReadFile、WriteFile。

它的功能很简单。这没问题。但是

我想看看这些函数中的系统调用在调试器中被调用。

我该怎么做?

使用调用堆栈?拆卸器?

因此,您不仅希望能够调试自己的代码,还希望能够调试API本身。有不同的方法可以做到这一点。

在最简单的级别上,只需使用VS2013中的调试器即可。您将无法跟踪到内核代码,而是API中的所有用户级代码。当然,由于您将使用没有符号表的非调试版本的Windows,您将只看到低级机器代码(*)。

如果你真的想更深入,你必须使用Windows调试工具。当你说你想调试系统调用时,我的建议是使用Windows驱动程序工具包、Windows符号,如果你真的进入内核模式,则使用Windows远程调试客户端(所有这些工具都可以从Windows开发人员中心获得)。

所有这些工具都很好地集成在VisualStudio中,但要做好艰苦的低级别工作的准备:-)

(*)您还可以使用Microsof Symbol Server访问windows符号信息,这要感谢IInspectable的评论。但我从来没有测试过。

最新更新