问题标签 [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 回答
1700 浏览

visual-studio-2010 - 如何调试 VSPackage 项目

我安装了 VS2010 SDK 并创建了一个 VSPackage 项目,使用了一个空的“Initialize”方法。

如果我在“初始化”方法中设置断点并在调试模式下运行项目,它会启动实验性 VS 实例,但断点没有命中。它说没有加载调试符号。

我究竟做错了什么?

谢谢你的帮助,恩拉

0 投票
3 回答
1917 浏览

visual-studio-2010 - 在 VS2010 网站上定义 DEBUG 符号?

我找不到这个设置在哪里

当我将配置下拉列表从调试更改为发布时,我发现我的代码没有任何变化,这表明我的 DEBUG 符号未定义

编辑

正如 Mark 建议的那样,我没有在 Buid 屏幕中看到设置:

在此处输入图像描述

0 投票
2 回答
416 浏览

iphone - 在 iOS 下,有没有办法在崩溃报告中确定正在执行的架构?

给定 iOS 上的崩溃报告(非符号化),有没有办法确定设备正在执行哪个架构(armv6 或 armv7)?

我为什么要问?我收到了一些与存档的 dSYM/可执行文件无关的崩溃报告。因此,我无法用自动化工具来象征它们。我想尝试将崩溃文件中记录的 UUID 更改为保留 dSYM 的版本(两个版本之间的更改可能只是资源文件更改[图像],因此编译的代码应该相同)。这可能允许我使用自动化工具来符号化报告并提取一些有意义的崩溃数据。

dwarfdump 显示我所拥有的可执行文件和 dSYM 符合预期,但它也显示每个(胖二进制)armv6 和 armv7 中都有两种架构。为了能够快速地将 UUID 替换为崩溃报告,我需要知道崩溃之前设备使用的架构。

0 投票
1 回答
703 浏览

silverlight - 使用调试运行项目需要很长时间才能加载

出于某种原因,我在 VS2010 中的 Silverlight 项目最近开始需要永远加载,甚至超过 10 分钟左右。有时它永远不会加载,据我所知,它只是挂在silverlight加载屏幕上,蓝色圆点动画。但在它到达那一点之前,它为它加载的每个符号文件痛苦地花费了 10 秒左右的时间。所以在输出中我会得到:

然后 10 秒后我会得到下一个,大约有 50 个。奇怪的是,当我在禁用 Internet 的情况下运行该项目时,它的加载速度非常快。这些符号加载语句中的每一个都飞过,在我知道之前,我正在查看我正在运行的 Silverlight 项目。我的队友可能与 Perforce 有关,这是我们管理源代码的方式,并且我们在 Visual Studio 中有一个插件。

任何人都有任何想法可能导致这种情况?或者曾经经历过类似的现象?昨天随机开始的。

谢谢!

编辑:如果相关的话,我正在使用内置的 VS Server 来托管我的项目。

已解决:我们不知道究竟是什么导致了这个问题,但它与网络相关并自行修复。我只希望它不会再发生。

0 投票
1 回答
138 浏览

windows - 查找崩溃的函数名称

我们从客户的站点收到了一个看起来像这样的崩溃日志(没有函数名称解析)

1 月 13 日 12:15:41.739 ccodvcs2 VCS​​:[0x00003e80] XXXX.exe 在 001B:77E4BEE7
1 月 13 日 12:15:41.739 ccodvcs2 VCS​​: [0x00003e80]
1 月 13 日 12:15:41.739 ccodvcs2 VCS​​: [0x构建 5.2.0.426
1 月 13 日 12:15:41.739 ccodvcs2 VCS​​:[0x00003e80]
1 月 13 日 12:15:41.739 ccodvcs2 VCS​​:[0x00003e80] WorkingSetSize:296443904 字节
1 月 13 日 12:15:41.739 CS023x2
VCS :15:41.739 CCODVCS2 VCS​​:[0x00003E80] EAX = 7E5CCF88 EBX = 00000000 ECX = 00000000 EDX = 7E5CD030 ESI = 7E5CD010
13 12:15:41.739 CCODVCS2 VCS​​:[0x00003E80] EDI = 00000000 EBP = 7E5CCFD8 ESP = 7E5CCF84 EIP = 77E4BEE7 FLG=00000206
Jan 13 12:15:41.739 ccodvcs2 VCS​​: [0x00003e80] CS=001B DS=0023 SS=0023 ES=0023 FS=003B GS=0000
1月13日12:15:41.739 CCODVCS2 VCS​​:[0x00003E80
1月13日:15:15:41.739 CCODVCS2 VCS​​:[0x00003E80] 001B:77E4BEE7(0xE06D7363 0x00000001 0x00000003 0x7E5CD004)
1月13日:15:41.739 CCODVCS2 VCS​​:[0x00003E80] 001B: 007339C1(0x7E5CD030 0x00867174 0x823D8B58 0x7E5CD388)
12年1月13日:15:41.739 ccodvcs2 VCS:[0x00003e80] 001B:0072E769(0x5832EF90 0x823D8AF0 0x00DF7118 0x00F97A38)
12年1月13日:15:41.739 ccodvcs2 VCS:[0x00003e80] 001B:004CB6CE(0x5832EF90 0x00F979F8 00000000 0x5832EF90 )
12年1月13日:15:41.739 ccodvcs2 VCS:[0x00003e80] 001B:004D713C(0x00000002 0x582F5C50 0x823D8930 0x7E5CD1D8)
12年1月13日:15:41.739 ccodvcs2 VCS:[0x00003e80] 001B:004D681A(0x08A9F398 0x823D89FC 0x7E5CD388 0x007C8B64)
年01月13 12:15:41.739 ccodvcs2 VCS:[0x00003e80] 001B:004BD21E(0x823D89C4 0x823D89C8 00000000 0x08A9F398)年01
月13 12:15:41.739 ccodvcs2 VCS:[0x00003e80] 001B:00402157(0x823D8838 0x0370B910 0x7E5CD2B8 0x7E5CD2B8)年01
月13 12:15: 41.739 ccodvcs2 VCS​​: [0x00003e80] 001B:0052AF9C (0x7E5CD370 0x823D8814 0x00F95F98 0x0367E120)

我对所有 Dll 和 EXE 本身都有一个相应的 PDB。如何在堆栈上找到函数的名称?似乎是一个非常有用的东西,但我无法在网络上看到任何重点信息,

我试图转储 PDB 文件,但那里的地址与崩溃中出现的不对应。

0 投票
1 回答
272 浏览

android - BatteryHistory.java:在 Android 源代码的 master 分支中找不到文件

我编译了主分支并在模拟器中运行它。“备件”菜单中的“电池历史记录”项不起作用。它导致“备件”的“强制关闭”。

DDMS 日志显示错误消息,如:

我发现“电池历史”使用该类com.android.settings.battery_history.BatteryHistory,但该类不再存在。它之前在存储库platform/packages/apps/Settings.git中。我搜索了整个代码库,但找不到这个类。

这个文件是否不再开源并被放入一些 JAR 文件中?

0 投票
1 回答
2752 浏览

c++ - 在运行时从应用程序读取调试信息

除了调试之外,我还有一些关于调试符号以及可以用它们做什么的问题。我最感兴趣的是关于 GCC 的答案,但我也很高兴知道它在其他编译器下的样子,包括 MSVC。

首先:

  • 调试符号的常见格式/类型是什么?
  • 它们与编译器和平台有什么关系?平台之间的 GCC 和 MinGW 上的格式是否总是相同的?
  • 我可以在运行时检查构建是否有它们以及它们的格式是什么?

还有一些更实际的问题......我怎么能

  • 检查当前文件和行号?
  • 获取正在执行的(合格的)函数名?
  • 获取完整的当前堆栈跟踪?

让我强调一下,我说的是运行时检查。所有这些都可以被 GDB 读取和打印出来,但我不知道有多少信息来自调试符号本身,还有多少来自 GDB 也可以访问的源代码。

也许有一个库能够解析调试符号并产生这样的信息?

调试符号是否标准化得足够好,以至于我可以期望此类解决方案具有一定程度的可移植性?

0 投票
1 回答
6229 浏览

visual-studio - 问题:断点当前不会被命中。没有为此文档加载任何符号



自从过去几天以来,我一直在使用 Visual Studio 2005。直到昨天它工作正常。突然它停止了调试工作。对于我曾经使用过的每个断点,它都给我“断点当前不会被命中”。没有为此文档的错误加载任何符号。
我尝试了通过网络找到的所有可能的解决方案;
1. 清理并重建解决方案。
2.删除pdb文件并重建解决方案。
3. 删除 C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 中的所有文件并重建解决方案。
4. 也更改了调试位置。

仍然没有任何事情发生。我对这个问题感到非常沮丧,因为没有解决方案有效。
请帮助我摆脱困境。
在此先感
谢维杰

0 投票
1 回答
2357 浏览

debug-symbols - GCC 调试信息

我正在使用 GCC ARM 交叉编译器 ( arm-none-eabi-*) 并且正在使用专有调试器。调试器可以突出显示选定源代码行的结果程序集。使用 nm 和 objdump,我可以看到二进制文件有多个.debug_*部分。很明显可以得出结论,调试器正在使用这些部分中包含的信息将源代码行映射到反汇编(反之亦然)。但我想怎么做。我想知道这些部分包含哪些信息,它们是如何相关的,以及如何理解它们。简而言之,如果我要编写一个调试器(或者至少是一个可以显示这些映射的工具:源到反汇编,以及每个源行的反汇编行数),我将如何阅读这些部分并使用它们. 假设零编译优化。

大概有一些文档描述了这些部分的格式?

0 投票
2 回答
367 浏览

c++ - 在 UNIX 上获取调试符号


在 Windows 上,我们可以使用 dbgHelp 库获取调试符号。
我们如何在 UNIX/linux(使用 c++)上做到这一点?

谢谢 :)