C++入口点 -> main()
C++ entry point -> main()
为了好玩,我正在编写自己的用户模式调试器。我知道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。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 代码在main()中运行,但在函数中出现错误
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 不确定要在我的main中放入什么才能使我的代码正常工作
- EASTL矢量<向量<int>>连续的
- 函数是否可以访问传递给main()的参数
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 我的 int main() 中出现堆栈溢出错误
- C++变量名(可以将 main 声明为变量,但对于其他函数名称则不然)
- 当我尝试在 Main 中调用插入函数时,它不是取数字?
- File.cpp.o:OpenPose 标志 CMakeFiles/.. 的多重定义/main.cpp.o:首先在这里定
- 为什么类和 main() 函数中也有动态内存分配
- 在 main.cpp 的上下文中找不到目录(带有 CMake 的快板)
- 我想在 Main 中用 C++ 调用其他类中的一个类,但我做不到
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 为什么 'main' 函数中的局部 int 变量会自动初始化?
- C++ assigment std::list:<typename>:itrator 在 main 中工作,但在方法中它不起作用
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 为什么要从main()返回NULL?