Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 即使加载了符号,Visual studio调试器也找不到任何标识符_Visual Studio_Debugging_Symbols - Fatal编程技术网

Visual studio 即使加载了符号,Visual studio调试器也找不到任何标识符

Visual studio 即使加载了符号,Visual studio调试器也找不到任何标识符,visual-studio,debugging,symbols,Visual Studio,Debugging,Symbols,我正试图在Visual Studio中调试一个程序,其中我有符号,但没有源代码(这是一个Unity游戏,所讨论的源代码是UnityPlayer.dll。我确实有实际exe文件的源代码)。 如果符号加载正确,我可以进入调试器,并可以看到带有函数名的调用堆栈,正如我所期望的那样 但是,当我尝试添加函数断点时,它不起作用:添加了断点,但它在断点窗口中显示了一个小错误图标,并且从未命中 如果我双击堆栈框架,我可以进入反汇编窗口,“地址”栏正确显示函数名。但是,如果我尝试在栏中输入任何符号名称(包括复制它

我正试图在Visual Studio中调试一个程序,其中我有符号,但没有源代码(这是一个Unity游戏,所讨论的源代码是UnityPlayer.dll。我确实有实际exe文件的源代码)。 如果符号加载正确,我可以进入调试器,并可以看到带有函数名的调用堆栈,正如我所期望的那样

但是,当我尝试添加函数断点时,它不起作用:添加了断点,但它在断点窗口中显示了一个小错误图标,并且从未命中

如果我双击堆栈框架,我可以进入反汇编窗口,“地址”栏正确显示函数名。但是,如果我尝试在栏中输入任何符号名称(包括复制它已经显示的符号名称),我会收到一条错误消息,说“identifier”which“is undefined”。就好像VisualStudio的某些部分不知道加载的符号

我注意到的一件可疑的事情是,在调用堆栈窗口中,所有不在实际exe文件中的帧都用“未知”语言显示。我不知道是什么原因造成的

下面的图片希望能让这一点更清楚:


我能做些什么来解决这个问题,或者至少以某种方式解决这个问题?我在VS 2017上遇到过这种情况,尝试将其更新为最新版本,并安装VS 2019,但没有任何帮助。

注意,在它显示的名称中,您也可以看到参数类型。比如,它显示的是
FMOD\u OS\u Time\u Sleep(unsigned int)
而不仅仅是
FMOD\u OS\u Time\u Sleep
。这是因为名称已损坏,名称两侧添加了随机字符,以编码需要多少参数以及这些参数的类型

一种可能性是,它希望您将名称的表示形式弄糟。您也可以尝试输入与调用堆栈中显示的完全相同的名称,我将使用
UnityPlayer.dll尝试这两种方法和不带。如果失败,请在dll上运行
strings
,以获取函数名的损坏表示形式,然后重试