问题标签 [pdb-files]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2008 - 为什么 VS 2008 会为某些 RELEASE 项目创建 PDB,而不会为其他项目创建 PDB?
我有一个解决方案,其中包含几个从 VS 2003、2005、2008 迁移的项目。在为 RELEASE 配置编译所有项目时,VS 2008 会为某些项目创建 PDB 文件,但不会为其他项目创建 PDB 文件。为什么?
在每个项目的“属性”页面的“构建”选项卡中,我可以看到它们都未选中“定义调试常量”并选中了“优化代码”。当我检查每个项目的 CSPROJ 时,我没有注意到任何看起来会改变这种行为的差异。我应该在 CSPROJ 文件中寻找什么?
此解决方案中的所有项目都生成类库,但一个创建 Windows 可执行文件的项目除外。
.net - .NET PDB 文件的格式(架构)是什么?
.NET PDB 文件的格式(架构)是什么?我想从这些文件中解析出信息,以便在调试应用程序中显示正确的代码行(行号)。
visual-c++ - 如何合并多个 PDB 文件?
我们目前使用单个命令行工具在 Windows 和 Linux 上构建我们的产品。
Si 到目前为止它工作得很好,允许我们从源代码构建并且具有比我们以前的任何构建系统所允许的更精细的依赖关系。这为我们带来了强大的增量和并行构建能力。
为了简要描述构建过程,我们得到通常的:
msvc C/C++ 编译器充分支持它。
最近出现了构建一些静态库的需求。根据我们收集到的信息,构建静态库的过程是:
单个 .pdb 意味着cl.exe
只应对所有 .cpp 源执行一次。这个单一的执行意味着我们不能并行化这个静态库的构建。这真的很不幸。
我们根据文档(以及可用的命令行选项)进行了进一步调查:
cl.exe
不知道如何构建静态库lib.exe
不知道如何构建 .pdb 文件
有人知道合并多个 PDB 文件的方法吗?我们注定要缓慢构建静态库吗?Incredibuild 等工具如何解决此问题?
c++ - 优化会影响使用其 PDB 调试 VC++ 应用程序的能力吗?
为了能够正确调试发布版本,需要一个 PDB 文件。当编译器使用不同类型的优化(FPO、PGO、内在函数、内联等)时,PDB 文件是否会变得不那么可用?如果是这样,优化的影响是严重的还是仅仅导致相邻的代码行混淆?
(我使用的是 VC2005,并且总是会选择可调试性而不是优化性能 - 但问题很笼统)
.net - pdb 文件包含多少信息?(C#/.NET)
将 pdb 文件与商业应用程序一起重新分发是否明智?
有时,我使用堆栈跟踪从已部署的应用程序中获取更详细的错误报告日志;可以在不依赖这些文件的情况下实现此功能吗?
另外,这些文件包含多少原始源代码的提示?使用它对我的应用程序进行逆向工程会更容易吗?
vb.net - 无法创建 PDB 文件
由于某种原因,这个错误今天开始在我的一个项目中出现。
错误 1 无法写入输出文件“C:\MyProject\Release\MyProject.pdb”:未指定的错误
如果我进入高级编译选项并将其更改为不生成和调试信息,我的项目编译得很好。
我已经尝试将 Release 文件夹的权限设置为每个人的完全权限,所以我认为这不是权限问题。此外,我的日志文件中没有任何内容可以为我提供有关该问题的更多信息。
有谁知道为什么这个错误会开始出现或修复它的方法?
谢谢。
更新:我已经重新启动了我的机器,多次重新启动 VS,甚至完全删除了发生问题的现有 OBJ 文件。它仍然给我同样的错误。
这是一个简单的项目解决方案,上周运行良好。VS 尝试构建 PDB 文件似乎是一个问题,因为我可以毫无问题地将它们从 Release 和 Debug 文件夹中删除。当我尝试重建它们时,VS 将开始创建文件(大小约为 1.4MB),但我仍然收到错误消息。
.net-3.5 - 使用 GAC 时如何获取用于登录生产的堆栈跟踪信息
我想在生产环境中获取用于记录异常等的堆栈跟踪(文件名和行号)信息。DLL 安装在 GAC 中。有没有办法做到这一点?
本文介绍了将 PDB 文件放入 GAC:
您可以轻松发现这些,因为他们会说您需要将调试符号(.pdb 文件)复制到 GAC。就其本身而言,这是行不通的。
我知道这篇文章是指使用 VS 进行调试,但我认为它也可能适用于记录堆栈跟踪。
除了取消选中他们说是可选的优化代码外,我已经按照说明回答了这个问题。
我将 dll 和 pdb 复制到 GAC 中,但仍然没有得到堆栈跟踪信息。这是我在堆栈跟踪的日志文件中得到的内容:
我正在使用 NLog。
我的 NLog 布局是:
${stacktrace:format=Raw} 是相关部分。
c# - 如何在 .NET 程序集中包含源代码位置信息(文件/行/列)?
我需要能够从 .NET 程序集获取源文件中的类/结构/接口定义位置(文件名、begin_line、begin_column、end_line、end_column)。
我想到的第一个解决方案是使用一些 pdb quering api,但似乎我只能通过这种方式获取方法定义的此类信息。或者,也许我错了……
为了提供上下文,我正在尝试为 VS 2008 构建一个插件,它通过 VS 自动化模型编译所有解决方案项目,获取程序集并使用反射进行一些可视化建模表示。我需要的是源代码和模型元素之间的连接。事实上,我什至可以以某种方式分析/修改来源,让他们记住位置信息。
任何想法,将不胜感激。
c# - pdb 是否提供有关源文件中类型定义的信息?
我知道 DIA api,dbghelp。但是我可以使用它们从我的程序集和生成的 pdb 中提取类型定义位置信息,例如文件、begin_line、begin_column、end_line、end_column 吗?
如果答案是肯定的,有人可以指点我那里的简单例子吗?
debugging - 针对不受支持的 Vault SCM 应用程序配置 Visual Studio 源服务器/符号存储
我正在尝试将我们的内部开发代码配置为符号服务器,在 Visual Studio 2008 中调试时可以访问源代码控制文件。我们可以在引用我们核心库集的其他项目上使用它。
遗憾的是,我们将 SourceGear Vault 用于我们的 SCM 系统,目前不支持使用其源代码控制引用来索引我们的 .PDB 文件。
我真的不需要直接的源代码控制访问,我对网络共享访问感到满意,但我看不到如何更新 PDB 文件中的引用。
我配置了符号服务器并添加了对原始构建源代码的正确引用,但是,当我在 Visual Studio 中调试并尝试进入引用的代码时,它不会从源服务器加载 PDB 并且因此没有可用的源代码。
此外,Visual Studio 可以通过 Load Symbols 命令下载核心 .NET PDB 文件,但当我单击模块时,我没有该选项。
有没有人有任何设置这种事情的个人经验?
如果有人可以提供帮助,非常感谢。