无法在C++中跟踪Visual studio入口点

Could not able to trace Visual studio entry point in C++

本文关键字:Visual studio 入口 跟踪 C++      更新时间:2023-10-16

在我的项目中,我无法从项目中发生条目的位置进行跟踪。当我查看调用堆栈时,它给出了的租用权

mfc100d.dll!_DllMainCRTStartup(void* hDllHandle, unsigned long dwReason, void *lpreserved) ntdll.dll!77328968()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!77335c11()
ntdll.dll!7733500a()
ntdll.dll!773335e9()

然后代码跳转到CCD_ 2。但它将如何进入!_DllMainCRTStartup对我来说是一项很难追踪的任务。从昨天开始我一直在试,但没能找到。

注:设置中:

Entry point is blank

No Entry: No

您可以加载Microsoft调试符号来解析[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll],并通过两种方式查看实际堆栈:

  1. 在调用堆栈上,右键单击条目,选择Symbol Settings...,然后按Load Symbols from Microsoft symbols servers
  2. Tools -> Options -> Debugging -> Symbols将引导您进入同一对话框,然后再次按Load Symbols from Microsoft symbols servers

这至少应该解析堆栈并显示系统调用。

对我来说,一个属于主线程而没有返回到main()函数的堆栈跟踪在构建全局对象(即在顶层声明(时听起来很糟糕。您可能需要对此进行研究。

也就是说,DllMainCRTStartup函数可能直接从C++运行时支持库中调用。