问题标签 [debug-symbols]

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.

0 投票
1 回答
24328 浏览

c - 使用 GCC 在共享库中启用调试符号

我正在创建一个共享库,gcc并怀疑共享库可能存在一些内存泄漏。要调试,我需要在创建共享库时启用调试符号。

要构建,我正在使用gcc -g ...-g用于启用调试信息)

但是*.so无论. -g_ -g此外,我没有从VALGRIND.

谁能指出我的错误?

0 投票
9 回答
79384 浏览

visual-studio - 阻止 Visual Studio 尝试为特定 DLL 加载符号

我将 Visual Studio 2005 设置为使用 Microsoft 的符号服务器。我还安装了UltraMon,它会在每个进程中注入一个钩子 DLL。每当我开始调试MFC应用程序时,Visual Studio 都会说:

从眨眼到几十秒的任何时间。它永远找不到那些符号……我可以告诉它不要费心去寻找吗?

(我尝试创建一个空RTSUltraMonHookX32.pdb文件,但 Visual Studio 认为它不好并继续查找。)

0 投票
4 回答
26679 浏览

.net - 在生产环境中部署调试符号(pdb 文件)有什么风险?

我有一个记录异常跟踪跟踪的应用程序,我希望这些堆栈跟踪在生产中部署时包含文件名和行号。我想出了如何使用程序集部署调试符号,但是在研究这个问题的过程中,我遇到了这个问题,这意味着在生产环境中包含 pdb 文件不是一个好主意。对已接受答案的评论说“......调试信息可能会泄露敏感数据并成为攻击媒介。取决于您的应用程序是什么。”

那么什么样的敏感数据可能会被暴露呢?如何使用调试符号来破坏应用程序?我对技术细节很好奇,但我真正想要的是一种实用的方法来评估在任何给定应用程序和生产环境中包含调试符号的风险。或者换一种说法:可能发生的最坏情况是什么?

编辑:后续问题/澄清

因此,根据到目前为止每个人的回答,对于 .NET 应用程序来说,这个问题似乎可以简化一点。迈克尔·马多克斯(Michael Maddox)的回答中链接的约翰·罗宾斯( John Robbins)博客中的这一点让我大吃一惊:

.NET PDB 仅包含两条信息,源文件名及其行和局部变量名。所有其他信息都已在 .NET 元数据中,因此无需在 PDB 文件中复制相同的信息。

对我来说,这重申了其他人对 Reflector 的看法,暗示真正的问题是访问程序集。一旦确定了这一点,就 PDB 做出的唯一决定是您是否关心公开文件名、行号和局部变量名(假设您一开始没有向最终用户显示堆栈跟踪)。还是我过于简单化了?

0 投票
3 回答
7654 浏览

visual-studio-2008 - 没有符号的跨步方法 - 如何步入?

使用 Visual Studio 2008 SP1 和一个 VB.NET 项目;我有一些我无法进入的代码。立即窗口显示消息“不带符号 'Some.Namespace.Here' 的单步方法”

我怎样才能确保方法总是有符号?!我需要进入每一行代码。我正在按 F8(这是 VS2008 中的“步入”,从内存中我认为它曾经是 VS2005 中的 F11)。

这个调试器的东西总是让我感到困惑:在解决方案级别的属性页中,我看到一个包含 4 个值的配置下拉列表:活动(调试)、调试、发布、所有配置。- 当前设置为“活动(调试)”在项目级别,我看到一个包含 2 个值的配置下拉列表:调试、发布。- 当前设置为“调试”

0 投票
2 回答
308 浏览

debugging - 如果我没有 Internet 连接,如何获得 Microsoft 的 dlls\assemblies 的正确符号?

由于安全原因,我无法将计算机连接到互联网。因此,我不能使用符号服务器。我已经为 windows xp sp2 安装了符号包,但一些 PDB 与我机器上安装的 dll 不匹配(我猜这是因为我的机器上安装了一些特定的更新)。

看起来,微软发布的唯一包是完整的 xp sp2 符号包。我无法从服务器下载特定符号。

有什么建议么?

0 投票
1 回答
1825 浏览

apache-flex - 我可以获取 Flash 播放器的调试符号吗?或者任何其他方式来获得对闪存的支持?

我工作的公司有一个 Flash 组件(使用 flex 和 cs4)在 chrome、FF 和 IE 中间歇性崩溃。(目前只有win32平台)

我向 Adob​​e 提交了错误报告,但没有收到他们的任何回复。他们的支持过程就像一个黑洞。我们可以使用这些步骤从 Flash 中获取转储,但在提交错误后,我们根本没有得到任何帮助。

我们将它加载到 MS Visual Studio 中,但无法获得像样的堆栈信息,因为 Flash 内容没有符号。

Microsoft 和其他公司提供符号来帮助调试,我们希望从 adobe 中获得。有没有办法在这方面取得进展?

有谁知道在哪里可以获得闪光符号或我们如何取得进展?

如果容器死了,就很难调试进程。

二进制文件是 flash10c.ocx

我刚刚与 adobe 人员在电话上度过了一个痛苦的小时 - 其中一个人(我与大约 8 人交谈过)的最终回答是,他们没有针对 Flash 的开发人员支持的每次事件购买计划。

我觉得很难相信。

有谁知道如何获得对 Flash 的支持?

0 投票
3 回答
3296 浏览

visual-studio - 减少附加和加载符号的时间

一般来说,您对此有何建议?目前,我需要将近 10 分钟才能附加到托管 SharePoint 2007 的本地运行的 IIS 进程。

0 投票
3 回答
739 浏览

c# - 如何摆脱 .NET Framework 引发的异常

在最近的一个项目中,我使用了大量的数据绑定和 xml 序列化。我正在使用 C#/VS2008 并下载了 .NET 框架的符号信息,以便在调试时帮助我。

我正在开发的应用程序有一个全局“catch all”异常处理程序,如果碰巧有任何未捕获的异常被抛出,它可以向用户呈现更美观的消息。我的问题是当我打开 Exceptions->Thrown 以便能够在异常被“全部捕获”捕获之前对其进行调试。在我看来,该框架抛出了很多没有立即捕获的异常(例如在 ReflectPropertyDescriptor 中),因此我实际上试图调试的异常会在噪音中消失。有没有办法摆脱框架引起的异常,但保留我自己的代码中的异常?

更新:经过更多的研究并实际上试图摆脱框架抛出的异常(其中许多是框架中的已知问题,例如:XmlSerializer 在构造函数中给出 FileNotFoundException)我终于找到了一个适合我的解决方案,在工具>>选项>>调试>>常规>>在VS2008中启用仅我的代码中打开“仅我的代码”。

0 投票
1 回答
1448 浏览

asp.net - 显示在 RELEASE 程序集中或仅在 DEBUG .dll 中有用的异常 StackTrace

我已经竭尽全力改进我的 web 服务中的错误处理 - 特别是显示 StackTrace,如下例所示:

我的问题是当我发布我的 web 服务并将其编译为 RELEASE 而不是 DEBUG 时会发生什么?我现在只在调试模式下编译时发布 .dll 和 web.config(无源),但是当记录错误时,StackTrace 指向我的开发机器中文件的行号,例如:

简而言之,RELEASE 模式的 DLL 是否仍会显示上述堆栈跟踪?我认为会但不确定;我的系统管理员在我们准备进入另一个部署级别时提出了这个问题。

0 投票
2 回答
5467 浏览

java - 为什么有些java库编译时没有调试信息

我最近注意到有一些 java 库(JDK、joda time、iText)在没有部分/全部调试信息的情况下编译。要么局部变量信息丢失,要么局部变量信息和行号都丢失。

这有什么原因吗?我意识到它会使编译后的代码更大,但我不认为这是一个特别大的考虑因素。或者它只是使用默认编译选项构建?

谢谢。