最近在我的计算机上干净安装Windows 10 Pro之后,我注意到每当我打破程序并打开调用堆栈时,调用堆栈会显示应用程序名称和行号,但函数名称显示为{ {1}}。调用堆栈可以照常导航,但缺少的函数名称非常烦人。
我尝试了以下内容:
甚至从默认模板创建一个新的Win32 C ++控制台应用程序,并打破调用堆栈中的<Unknown function>
网return 0;
。
如何让调用堆栈显示正确的函数名?
答案 0 :(得分:2)
此错误消息表示调试器的组件格式化C ++堆栈帧的文本失败。我已经看到当安装程序使Visual Studio与二进制文件不匹配时会发生这种情况。以下是我要尝试的事情:
首先通过devenv.exe /safemode
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger
安全模式运行VS,确保这不是由错误的扩展引起的。
卸载任何VS扩展,然后卸载VS并确保从depends.exe
删除所有文件(如果您在其他地方安装了VS,可能需要更改路径),然后尝试重新安装。
如果这样做无法修复,那么您的Windows安装可能会出现问题。您可以尝试在cppdebug.dll
上运行let loginVC = storyboard.instantiateViewControllerWithIdentifier(kMyViewControllerId) as! MyViewController
self.presentViewController(loginVC, animated: true, completion: nil)
,看看是否可以确定缺少哪个依赖项。
答案 1 :(得分:0)
帕特里克怀疑,问题原来是cppdebug.dll
遗失的cppdebug.vsdconfig
和Common7\Packages\Debugger
。不幸的是,Visual Studio没有表明它们是一个问题,重新安装或修复安装也没有帮助。幸运的是,我能够通过其他方式获得这些文件
放置等效于Visual Studio版本的文件可以解决问题。
cppdebug.dll
和cppdebug.vsdconfig
: