0

在我的项目中,我无法从条目发生的位置跟踪到项目。当我查看调用堆栈时,它给了雇佣关系

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()

然后代码跳转到 CWinApp::InitInstance(). 但它会如何发展!_DllMainCRTStartup对我来说是一项艰巨的任务。我从昨天开始尝试,但我找不到它。

注意:在设置中:

Entry point is blank

No Entry: No

4

2 回答 2

1

您可以加载 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

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

于 2013-02-26T09:20:53.663 回答
1

main()对我来说,在构造全局对象(即在顶层声明)时,属于主线程并且不返回函数的堆栈跟踪听起来像是出了问题。您可能想对此进行调查。

即,该DllMainCRTStartup函数可能直接从您的 C++ 运行时支持库中调用。

于 2013-02-26T10:00:41.303 回答