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

时间:2013-02-26 09:09:10

标签: c++ visual-studio-2010

在我的项目中,我无法追踪项目进入的位置。 当我调查调用堆栈时,它正在给予hirerchy

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

2 个答案:

答案 0 :(得分:1)

您可以加载Microsoft Debug符号来解析[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
  3. 这应该至少解析堆栈并显示系统调用。

答案 1 :(得分:1)

属于主线程的堆栈跟踪并没有返回到main()函数,在构造一个全局对象(即在顶层声明)时,听起来像是出错了。你可能想调查一下。

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