C ++入口点 – > main()

我正在写我自己的小用户模式debugging器的乐趣。 我知道PE头中指定的入口点不是定义main()的程序(无论如何,就微软的c ++运行时而言)

我在哪里可以find关于在这个入口点之间发生的调用的一些文档,直到实际的main()函数,以及为什么调用它们,以及它们做什么?

你不能。 其实主要可能不存在。 例如:可以覆盖链接器使用的默认CRT入口点,主可以内联到CRT启动功能等。

CRT的源代码随Visual Studio一起提供。 例如,对于Visual Studio 2010的默认安装位置,位于:

 C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src 

实际的main()crt0.c

不同类型的CRT(静态,DLL,MT,x86,x64等)受CRTDLL_M_IA64等一些定义的控制。 你会看到什么时候你挖。

除了源代码本身之外,AFAIK调用等代码的行为是没有记录的。

首先将光标放在main并使用调试器“run to here”。 或者在那里设置一个断点。 然后检查调用堆栈中的调用。

干杯&hth。,