C++入口点 -> main()

C++ entry point -> main()

本文关键字:main gt 入口 C++      更新时间:2023-10-16

为了好玩,我正在编写自己的用户模式调试器。我知道PE头中指定的入口点不是程序定义的main()(就microsoft c++运行时而言)

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

你不能。实际上main可能不存在。例如:你可以覆盖链接器使用的默认CRT入口点,main可以内联到CRT启动函数中,等等…

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

C:Program FilesMicrosoft Visual Studio 10.0VCcrtsrc

实际的main()crt0.c

不同类型的CRT(静态、DLL、MT、x86、x64等)由CRTDLL_M_IA64等定义控制。当你深入挖掘时,你会看到。

除了源代码本身之外,调用等代码的操作没有记录。

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

干杯,hth。