在我的项目中,我无法追踪项目进入的位置。 当我调查调用堆栈时,它正在给予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
答案 0 :(得分:1)
您可以加载Microsoft Debug符号来解析[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
并以两种方式查看实际堆栈:
Symbol Settings...
,然后按Load Symbols from Microsoft symbols servers
Tools -> Options -> Debugging -> Symbols
会引导您进入同一个对话框并再次按Load Symbols from Microsoft symbols servers
这应该至少解析堆栈并显示系统调用。
答案 1 :(得分:1)
属于主线程的堆栈跟踪并没有返回到main()
函数,在构造一个全局对象(即在顶层声明)时,听起来像是出错了。你可能想调查一下。
即。 DllMainCRTStartup
函数可能直接从您的C ++运行时支持库中调用。