首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Visual Studio 2017 “无法查找打开PDB文件“ 解决方法

运行的时候提示无法查找打开PDB文件 解决办法(注意:必须使用管理员身份运行VS) 第一步 打开调试窗口的选项 第二步 调试——>常规——>勾选启用源服务器支持 它会弹出警告窗口,点“是”即可...(下载耗时取决于网速) 打开相应的文件夹,可以看到已经下载好的符号: 最后的话: 1,第一次下载符号的时候会比较慢。下载完毕后,再次运行就很快,无需等待。...2,如果还是提示”无法查找打开PDB文件”,尝试以管理员身份运行VS(经笔者测试,不以管理员运行的VS,无法把符号保存到指定路径上,可能是与文件夹的权限有关)。...最近很多人私信我能不能分享以下PDB文件,我已将下载好的PDB文件(仅仅是项目工程编译时所下载的部分,可能不完整)上传到百度网盘。...(除了一些文件对应的pdb微软没有和其他情况以外),应该算是比较完整的一个PDB集合吧。

5.9K20

c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」

对于本机 C/C++代码,它驻留在 \debug 子目录中。对于托管代码,它驻留在 \WINDEBUG 子目录中。...链接器将创建 project.PDB,它包含项目的 EXE 文件调试信息。project.PDB 文件包含完整的调试信息(包括函数原型),而不仅仅是在 VCx0.PDB找到的类型信息。...这两个 PDB 文件都允许增量更新。链接器还在其创建的 .exe .dll 文件中嵌入 .pdb 文件的路径。...Visual Studio 调试器使用 EXE DLL 文件中的 PDB 路径查找 project.PDB 文件。...如果调试器在该位置无法找到 PDB 文件或者如果路径无效(例如,如果项目被移动到了另一台计算机上),调试器将搜索包含 EXE 的路径,即在“选项”对话框(“调试文件夹,“符号”节点)中指定的符号路径。

1.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

五、CLR加载程序集代码时,JIT编译器对性能的产生的影响

相比之下,本机(native)应用程序的只读代码页可由应用程序正在运行的所有实例共享. 2、CLR首次加载代码造成的性能损失的严重程度 对于大多数应用程序,JIT编译造成的损失并不严重,大多数应用程序都在反复的调用相同的方法...代码若在调试器中执行,一些函数求值可能无法进行.但是,优化过的IL代码变得更小,结果EXE/DLL文件也更小..../debug(+/full/pdbonly)开关: 编译器会生成Program Database(PDB)文件,PDB文件帮助调试器查找局部变量并将IL指令映射到源代码..../debug:full开关告诉JIT编译器你打算调试程序集,那么JIT编译器会记录每条IL指令所生成的本机代码.这样依赖,就可利用Visual Studio的“即时”调试功能,将调试器连接到正在运行的进程...不打开/debug:full开关,JIT编译器默认不记录IL与本机代码的联系,这使JIT编译器运行的稍快,占用内存也稍少.如果进程用Visual Stdio的“即时”调试功能,会强迫JIT编译器记录IL

91570

Visual Studio 调试系列3 断点

若要查看其中调试器尝试并加载符号。 有关加载符号的详细信息,请参阅指定符号 (.pdb) 和源文件。 如果已加载符号,PDB 不包含有关源文件的信息。...以下是几个可能的原因: 如果最近添加的源文件,确认正在加载的模块的最新版本。 可以创建使用去除的 Pdb /PDBSTRIPPED链接器选项。 去除的 Pdb 不包含源文件信息。...确认你正在使用完整 PDB 和不去除的 PDBPDB 文件部分已损坏。 删除文件,并执行干净的生成的模块来尝试解决此问题。..."… 当前源代码是从...中内置的版本不同" 如果源文件已更改,并且源与正在调试代码不再匹配,调试器不会设置断点在代码中默认情况下。 通常情况下,此问题发生时更改源文件,但不重新生成的源代码。...下面是要检查的几个事项: 如果在多个进程多台计算机运行你的代码,请确保你正在调试的正确的进程计算机。 确认你的代码正在运行。

5.2K20

配置PDB符号文件服务

小木没有松懈,继续进行项目代码和Debug技术的学习,同时也思考了一个问题“产品每隔一段时间就会发布新的版本,当出现Crash问题的时候得手动去拷贝响应版本的pdb文件本机进行调试,有没有什么方式可以实现自动化呢...小木继续想,如果能把产品每次发布的pdb文件存储到一个服务器,就像微软的symbol server一样就好了http://msdl.microsoft.com/download/symbols。...这样在调试机器上的Windbg,配置产品的pdb文件服务器就好了。带着这样的问题,小木进行网络搜索,找到了问题的答案。...>\*.pdb /t blogserver a. symstore.exe 可以在你的windbg安装目录中找到 b....可以在Windbg打开打开菜单File->Symbol File Path ...中配置srv**\\<Symbol_Machine Hostname

47220

Windows下dump文件生成与分析

Dump文件 2.1 VS调试 用VisualStudio打开dmp文件。...测试时 dmp文件时本地产生的,因此VS会依据dmp文件自行找到exe,pdb和源代码的路径。因此直接点击调试,程序会出错代码行中断。...但若dmp文件是exe在另一台机器上产生的,则我们最好把exe,pdb,dmp放到同一文件夹下,必须保证pdb与出问题的exe是同一时间生成的,用VS打开dmp文件后还需要设置符号表文件路径和源代码路径...: (1) 当把pdb文件与dmp文件放入同一目录下时,就不需设置其路径,否则需要设置 工具->选项->调试->符号: (2)还需设置源代码路径: 属性->调试代码: 这样点击“使用仅限本机进行调试...”,即可在出错代码行中断: 2.2 WinDbg调试 (1)设置pdb路径:File ->Symbol File Path (2)设置exe路径:File -> Image File Path (

3.7K20

VS2015调试dmp文件方法

二、打开dmp文件双击打开dmp文件,会默认用vs打开。三、调试点击使用仅限本机进行调试。如果要看到详细堆栈或者代码对应的位置,光有dmp文件是不够的,还需要其他文件。这里可以分几种情况:1....只有dmp文件,没有其他文件用vs调试什么都看不到,没有有效信息。2.有dmp、exe/dll、pdb文件注意: exe、dll、pdb文件要对应崩溃环境上当时编译出来的版本,不能是后面编译的版本。...有了这些个文件,可以看到崩溃堆栈了。3.有dmp、源代码pdb、exe/dll文件注意: exe、dll、pdb文件要对应崩溃环境上当时编译出来的版本,不能是后面编译的版本。...源代码也要对应当时的版本,如果改动了则行号会错乱。

18220

在.net项目中生成的pdb(程序数据文件)是什么文件

当您检查选项,你可以看到反编译的代码相同的变量名,你的实际代码,但在缺乏PDB未经检查该选项时,局部变量反编译的代码中,字符型变量名会被替换成“str”,数值型的则是“num”等等。 ?...调试器如何加载PDB ? Visual Studio调试器假设PDB文件位于与DLLEXE相同的文件夹下。...参考MSDN文档: 如果您使用/调试:full,请注意,JIT优化代码的速度和大小会受到一定的影响,并且对代码质量的影响很小。我们建议/调试:pdbonly没有PDB来生成发布代码。 ?...我们可以使用symstore.exe设置自己的符号服务器,它允许调试找到与二进制相关的实际PDB。symstore.exe包含在窗口包的调试工具中。...当您在debug点和open Modules窗口停止执行时(如下所示),您将会发现所有的dll(外部内部)加载到该断点之前,但是默认情况下的符号状态将显示“无法找到打开pdb文件”,除了您的pdb

1.4K30

如何使用Vim编写和调试Python代码

如何使用Vim编写和调试Python代码 1.部署环境 要想在Ubuntu下使用VIM编写和调试Python代码,请下安装如下的链接进行配置: https://segmentfault.com/a/1190000003962806...(Pdb) 会自动停在第一行,等待调试,这时你可以看看帮助 (Pdb) h 说明下这几个关键 命令 >断点设置 (Pdb)b 10 #断点设置在本py的第10行 (Pdb)b ots.py:20...c #跳到下个断点 >查看 (Pdb)p param #查看当前 变量值 (Pdb)l #查看运行到某处代码 (Pdb)a #查看全部栈内变量 >如果是在 命令行里的调试为: import pdb def...你可以把缓冲区想象成最近打开的一个文件。...在本机上正经写代码: PyCharm,社区版免费,专业版 $199 每年。 在本机上写几行脚本: ipython 或者 pyipython。 在服务器调试的时候微调代码:vim

3.9K10

.Net,Dll扫盲篇,如何在VS中调试已经编译好的dll?

在以.net的开发为例,在当前编译环境下,只需要对当前想要制作成dll的项目右键重新生成下,然后在该项目对应的文件夹下面找到debug文件夹,里面就会有一个与当前项目名称一样的后缀为dll的文件。...你可以通过vs的对象浏览器看看里面都是啥结构,但是你是看不到方法里面的代码的,也无法调试。 怎么查看dll的代码? 你想了解这些dll中的代码实现,但是你看不到。但是,你想到的,前人早想到了。...如果你想查看特定的dll的话,可以点击文件选项卡,然后点击打开,然后找到dll路径就可以了(.NET Reflector也一样)。 工具很方便,有很多功能,具体教程,大家自行百度。...当你点击该选项的时候,这个插件会把这个dll的代码给转成本地的文件,.NET Reflector首先会尝试定位本机上的PDB文件,如果没有则会自己创建PDB文件,这才能进行调试。 ?...接下来我们就可以打断点调试了! ? 选中断点,然后按照你喜欢的方式去调试!F5或者附加进程都可以。 为什么有的代码无法调试? 有的时候,你即便打了断点,可发现怎么也调试不进去。

3.7K20

VisualStudio 2019 调试项目使用 Portable PDB 提示不支持 PDB 格式

在新的 .NET 上,将会默认使用 Portable PDB 符号格式,而如果 VisualStudio 配置了使用托管兼容模式,那么将在加载符号的时候,将会提示不支持 PDB 格式 在发现自己的代码因为没有加载符号而断点无法命中提示当前不会命中断点...,还没有为该文档加载任何符号,就应该通过 调试->窗口->模块 打开模块界面,找到自己要调试的程序集,右击加载符号 如果 VisualStudio 找不到默认的符号文件,可以自己设置文件夹 但是在使用...此时的 VS 将因为默认不会忽略 pdb 符号文件时间戳而失败 在自己找 PDB 文件,将会提示不支持 PDB 格式,或者英文版本的 PDB format is not supported 提示 解决的方法不是让...VisualStudio 2019 忽略 PDB 文件校验,而是通过配置的方法禁用使用托管兼容模式。...只有在将默认调试引擎替换为旧版本才需要使用托管兼容模式,而旧版本的调试不支持新版本的 PDB 格式 点击工具->选项->调试 找到 使用托管兼容模式 选项,禁用即可 在英文版本的 VS 对应的选项是 Use

71330

怎么把sql删干净_sql的导入和导出的好处

可以使用 /debug:full /debug:pdbonly 生成应用程序。 使用 /debug:full 生成将产生可调试代码。...Visual Studio 调试器使用 EXE DLL 文件中的 PDB 路径查找 project.pdb 文件。...如果调试无法在该位置找到 PDB 文件,或者该路径无效,调试器将先搜索包含 EXE 的路径,然后搜索“选项”对话框中指定的符号路径。 该路径通常是“符号”节点中的“调试文件夹。...如果调试无法找到 .PDB 文件,则显示“查找符号”对话框,这将允许您搜索符号向搜索路径添加其他位置。...为什么很多人都不喜欢pdb,欲除之而后快? 答: Debug里的PDB是full,保存着调试和项目状态信息、有断言、堆栈检查等代码

61830

dotnet 打包 NuGet 的配置属性大全整理

,而不是使用外链图片下载地址,解决一些奇怪的地方无法拉到包泄露隐私 GeneratePackageOnBuild 生成的时候,构建出 NuGet 包。...推荐在源代码无需保护的项目,如内部开源项目外部开源项目,以及 PDB 不对外发布的项目里,设置此属性为 true 从而将源代码嵌入到 PDB 文件里面,方便调试 详细请参阅 Roslyn 通过 EmbedAllSources...将源代码嵌入到 PDB 符号文件中方便开发者调试 AllowedOutputExtensionsInPackageBuildOutputFolder 允许哪些扩展名的输出文件带入到 NuGet 包里面...此 SourceLink 功能是在 PDB 符号文件里面,嵌入源代码的下载地址,方便调试的时候获取到源代码,详细请看 dotnet 使用 SourceLink 将 NuGet 链接源代码到 GitHub...用来实现无论在哪台打包服务器上以及在任何时候打包都会输出相同 这个 ContinuousIntegrationBuild 属性在本机构建调试时,都不应该设置为 true 的值。

1.4K20

PDB文件详解

所以只要模块在当前电脑上载入,调试器自然地会根据模块当中的路径信息找到相应PDB文件并载入。...如果源文件找不到,那么依然能够查看调试信息,只是这个时候只能查看汇编代码,不能通过源文件可视化查看信息。一般情况下,绝大多数C++程序员不具备阅读汇编代码的能力。...所以完全通过PDB文件调试,意义与作用均没有多大。如果要让其他人能够调试自已的代码PDB文件和源码都应该提供,只提供PDB文件的意义不大。如果确实有类似的需求,可以保留相应生成的PDB文件。...现在重点说3,即设置符号文件路径。 通过Options->Debuggin->Symbols或在Call Stack窗口右键找到Symbol Settings打开下面的窗口。...为什么讲这个设置符号文件呢?因为有时候,有些项目非常庞大,并且代码是共享的,所以代码会放到服务器上。很多很大PDB调试文件,如果拷贝到本地电脑上比较麻烦。

1.9K10

引脚数据提示编辑代码并继续调试(C#,VB,C ++)编辑XAML代码并继续调试调试难以重现的问题配置数据以显示在调试器中更改执行流程跟踪范围外的对象(C#,Visual Basic)查看函数的返回值

启动调试器(F5)并在断点处停止。 在“本地”窗口中找到变量(“调试”>“ Windows”>“本地”),右键单击该变量,然后选择“创建对象ID”。...更加熟悉调试器如何附加到您的应用程序(C#,C ++,Visual Basic,F#) 要附加到正在运行的应用程序,调试器将加载与要调试的应用程序完全相同的内部版本生成的符号(.pdb文件。...在某些情况下,对符号文件的一些了解可能会有所帮助。您可以使用“模块”窗口检查Visual Studio如何加载符号文件。 在调试时,通过选择“调试”>“ Windows”>“模块”,打开“模块”窗口。...在大多数情况下,调试器会自动查找用户代码的符号文件,但是如果您要进入(调试).NET代码,系统代码第三方库代码,则需要采取额外的步骤来获取正确的符号文件。...要了解调试器如何将代码分类为用户代码,请参见Just My Code。要查找有关符号文件的更多信息,请参见Visual Studio调试器中的指定符号(.pdb)和源文件

4.5K41

Visual Studio 调试系列9 调试器提示和技巧

然后通过 F5 键步骤命令继续运行应用。 ? 通过更改执行流,你可以进行测试不同代码执行路径重新运行代码等操作,而无需重启调试器。...12 将调试器附加到您的应用程序 若要附加到正在运行的应用,调试器将加载为想要调试的应用的相同内部版本生成的符号 (.pdb) 文件。 在某些情况下,了解符号文件的一些知识非常有用。...你可在模块窗口中检查 Visual Studio 如何加载符号文件。 在调试时,通过选择调试 > 窗口 > 模块 打开模块窗口。...在大多数情况下,调试器会自动为用户代码查找符号文件,但如果你想要单步跟踪 (调试).NET framework 代码、系统代码第三方库代码,必须执行其他步骤获取正确的符号文件。 ?...若要了解有关符号文件的详细信息,请参阅在 Visual Studio 调试器中指定符号 (.pdb) 和源文件

3.1K10

Python 调试器,一个优秀开发人员的必备技能包。

究其源头还是很多人没有意识到「调试程序」的重要性,或者根本不知道这个概念。调试程序是所有开发人员必须具备的一项重要技能,它可以让我们一步一步的看到程序的运行过程,帮助我们准确的找到程序中的错误。...如果你只是准备写一辈子短代码,那你确实不用,但是如果你以后一步步的想去做项目了,随着代码量的增加,逻辑的复杂,如果你还是硬撑着用 print 去解决问题,那么恭喜你,你可能加班加到头发光光也不一定能找到问题在哪...一种是直接在命令行参数指定使用 pdb 模块启动 Python 文件,这种适合于代码文件较短的情况,将在代码的第一行启动 Python 调试器。...具体如下所示(例如文件名是 test.py): python -m pdb test.py 另一种是在 Python 代码中调用 pdb 模块的 set_trace 方法设置一个断点,当程序运行到此断点的时候...,程序将会暂停执行并且打开 pdb 调试器,这种适合于代码文件较大的情况。

36810

Python 中 -m 的典型用法、原理解析与发展演变

官方把它们定义为“接口选项”(Interface options),需要区别于其它的普通选项通用选项。...执行后,在本机打开“http://localhost:8000”,或者在局域网内的其它机器上打开“http://本机ip:8000”,就能访问到执行目录下的内容,例如下图就是我本机的内容: ?...它的第三个常见用法是执行 pdb调试命令“python -m pdb xxx.py”,以调试模式来执行“xxx.py”脚本: ?...对于本例,如果换一个目录执行的话,“python test.py”当然会报找不到文件的错误,然而,“python -m test”却不会报错,因为解释器在遍历sys.path时可以找到同名的“test”...由此差异,我们其实可以总结出“-m”的用法:已知一个模块的名字,但不知道它的文件路径,那么使用“-m”就意味着交给解释器自行查找,若找到,则当成脚本执行。

82040
领券