在 gdb 会话中选择调试信息文件的子集

2024-01-04

在我的 Fedora 盒子上我安装了很多单独的调试信息。

sudo dnf debuginfo-安装<list of packets>

现在,如果我调试一些简单的代码,则需要很长时间才能显示某些符号或打印某些值。很明显,绝对需要评估所有已安装的符号文件才能获取所有信息。

但是如果我有问题,比如说在像 goocanvas 这样的库上,我只想用我自己编译的代码生成本地调试符号-g选项和onlygoocanvas 库的调试信息。

如何才能实现这样的选择呢?仅通过重命名调试信息文件的文件夹并生成所需文件的副本?也许作为符号链接?或者是否有通用的选择选项?


您可以跳过共享库中的所有调试信息,只加载 goocanvas lib 符号。以下是如何在 gdb 会话中执行此操作的示例:

[ ~]$ gdb -q /your/binary
(gdb) set auto-solib-add off 
(gdb) start 

Temporary breakpoint 1, 0x000055555564edd0 in main ()
(gdb) sharedlibrary goocanvas

From gdb doc https://sourceware.org/gdb/onlinedocs/gdb/Files.html#Files:

如果您的程序使用大量带有调试信息的共享库 占用大量内存,可以减少gdb内存 足迹通过防止它自动加载符号 共享库。为此,请在之前输入 set auto-solib-add off 运行下级,然后加载您调试符号的每个库 确实需要共享库正则表达式,其中正则表达式是常规的 与您想要成为其符号的库相匹配的表达式 已加载。

另请参阅此相关问题:如何防止 GDB 加载(大型)库的调试符号? https://stackoverflow.com/questions/31763639/how-to-prevent-gdb-from-loading-debugging-symbol-for-a-large-library

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 gdb 会话中选择调试信息文件的子集 的相关文章

  • Chrome控制台网络中的“发起者其他”是什么?

    当有人在我们的网站上进行转化以进行报告和分析时 我会触发图像标签 img src https example evyy net conv somechannel cats cid 3790 oid 123 cat1 premium sku1
  • Xcode 在调试版本中是否有自动设置的宏?

    所以我可以写这样的代码 ifdef whatever do stuff that will never show up in the production version endif 默认情况下没有什么用处 但您可以设置DEBUG用于调试构
  • 在 GDB 中,是否可以给出一个相对于函数开头的地址(以行为单位)?

    主题行基本上说明了一切 如果我根据文件和行号给出位置 则在编辑文件时该值可能会更改 事实上 如果我在重构过程中编辑多个函数 它往往会经常发生变化 而且会带来不便 但是 如果它相对于函数的开头 行 则更改的可能性较小 如果无法给出距函数开头的
  • 如何在 Visual Studio 中调试 Windows PowerShell 模块?

    我正在尝试使用 Visual Studio 2015 将 PowerShell 模块编写为 VB NET 项目 我已经能够将一些命令放在一起 将类库编译到 DLL 中 将模块导入到 PowerShell 会话中并调用我创建的命令 到目前为止
  • 为什么“raise IOError(“无法识别图像文件”)”仅在部分时间出现?

    我写了一个小程序 从下载最新的每日潮汐图NOAA http tidesandcurrents noaa gov 向包含潮汐信息的图像添加文本表 然后将此图像设置为我的桌面壁纸 from bs4 import BeautifulSoup im
  • 如何在Linux中诊断Python进程占用CPU

    我的 python 进程在自动化脚本中的某个时刻开始在基于 Linux 的系统 Ubuntu 上占用 CPU 我正在尝试在 GDB 中调试这个问题 我对 GDB 还很陌生 是否有任何 GDB 命令可以提供有关哪个线程正在使用大部分 cpu
  • Eclipse 和 Zend 调试器总是在第一行中断,尽管未选中该选项

    我取消选中了在第一行中断PHP 调试配置中的选项 但无论如何它仍然在第一行中断 我怎样才能防止这种情况发生 我正在使用 MacOSX Eclipse PDT 3 0 2 和 Zend 调试器 经过大量谷歌搜索后 我找到了如何解决这个问题 可
  • 什么是数据断点?

    我刚刚才知道有data断点 过去 5 年我一直使用 Visual Studio 从事 C 工作 但从未使用过数据断点 有人可以阐明什么是数据断点 何时使用它们以及how与 VS 一起使用它们 根据我的理解 当我们想要检查变量值的更改时 我们
  • 如何调试 EF5 在运行时生成的 SQL?

    所以我对 EntityFramework 还很陌生 实际上现在处于 POC 阶段 我试图回答的问题之一是如何通过调试器或其他进程可附加工具可视化 EF 生成的查询 我试图解决的情况是 在尝试调试 QA 或生产问题时 开发人员需要能够通过远程
  • 是否存在与 Windows 7 内核符号相关的已知问题?

    我有几台 Windows 7 机器 我无法读取它们的内存转储 我发现一些我怀疑可能相关的东西 但并不肯定 https twitter com aionescu status 634028737458114560 https twitter
  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re
  • Visual Studio Code 调试默认 ASP.NET Core MVC WebApp:不起作用

    我正在使用 Manjaro linux 并尝试调试默认的 ASP NET Core MVC 项目 但调试停止 没有任何错误 我创建了该项目 dotnet new mvc in a Meow文件夹 没什么特别的 然后添加了新的配置 NET C
  • 如何在 gem 的示例脚本中使用 pry-byebug ?

    我正在制作我的第一个 gem 它不是 Rails 应用程序 而是一个带有一些 AI 的 tic tac toe 库 这样我就可以与一个永远不会输的计算机对手比赛 并在可能的情况下强行获胜 现在我正在尝试调试人工智能中的攻击策略 但我似乎无法
  • Intellij - 调试器断点不再工作

    我正在正常工作 调试Java Maven项目与IntelliJ 2018 2 1 然后我单击 Intellij 停止应用程序以对代码进行一些修改 当我在调试模式下再次启动应用程序时 它 调试器 只是停止工作 现在 应用程序需要大约 10 2
  • 如何记录 sqlalchemy 中返回的 SQL 语句和行以帮助调试?

    我该如何配置sqlalchemy记录它向数据库服务器发出的 SQL 语句 并记录从这些语句返回的行 这对于调试很有用 选项 1 设置sqlalchemy engine记录器日志级别为logging INFO or logging DEBUG
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • 从调试版本检测发布版本的最佳方法? 。网

    所以我有大约 10 个简短的 css 文件与 mvc 应用程序一起使用 有像 错误 css 登录 css ETC 只是一些非常短的 css 文件 使更新和编辑变得容易 至少对我来说 我想要的是能够优化 if else 分支而不是将其合并到最
  • Xcode - 调试视图层次结构

    我正在尝试调试应用程序的视图层次结构 Xcode 窗口的左侧窗格中出现了一个紫色的小方块 请参见屏幕截图 知道这个问题可能是什么吗 好吧 我找到了这个问题的根源 这是一个约束问题

随机推荐

  • 使用相对布局制作动态视图时面临的问题

    我正在使用相对布局动态构建视图 网格 例如 如果有 1 个用户 网格与用户 1 https i stack imgur com 4Dqsr png 1 https i stack imgur com 4Dqsr png 如果有 2 个用户
  • FileSystemWatcher 创建 1000 个文件失败

    我正在使用 FileSystemWatcher 监视文件夹 A 如果创建文件或将文件复制到该文件夹 中 它将被移动到文件夹 B 我通过右键单击 选择 新建 选择 文本文档 在文件夹 A 中创建了一个文件 该文件立即移至文件夹 B 但是 如果
  • 如何检测颤振中选定的键盘语言?

    如何在打字时检测当前的键盘语言 我正在尝试在聊天应用程序中实现翻译 我需要知道其他用户正在输入哪种语言 以便我可以根据用户的母语知道要翻译哪些文本 目前flutter中似乎没有办法做到这一点 我在 GitHub 上提交了一个问题 如果您想帮
  • 如何制作一个收集到 com.google.common.collect.ImmutableSet 的 java.util.stream.Collector?

    这对我来说似乎太棘手了 因为ImmutableSet实例仅使用以下内容构建ImmutableSet Builder实例 未实现Collection所以你不能只使用Collectors toCollection ImmutableSet ne
  • Vaadin 10/11 和嵌入式 Jetty

    我在 Vaadin 8 5 1 上开发了中型应用程序 Jetty 嵌入式 9 4 8 用作 Vaadin servlet 的 Servlet 容器 在 Java 代码中 我初始化 Jetty 实例 创建 Vaadin servlet 并将其
  • 多个 Web 服务的集中身份验证和授权

    有几种不同的 Web 服务 使用的各种技术 例如 Java NET Python Perl 以及将来可能会使用的更多技术 属于不同的组织 并且必须限制对这些 Web 服务的访问 这个想法是拥有一个中央身份验证和授权服务器 只负责授予对每个
  • 为什么要预测一个分支,而不是简单地并行执行两个分支?

    我相信 在创建 CPU 时 如果选择了错误的分支 分支预测会导致速度显着下降 那么 为什么 CPU 设计者选择一个分支 而不是简单地执行两个分支 然后在确定选择了哪个分支后就切断其中一个分支呢 我意识到这只能在少量指令内深入 2 或 3 个
  • 如何避免多个嵌套 IF

    我目前正在尝试重组我的程序 使其更加面向对象并更好地实现已知模式等 我有很多嵌套的 IF 语句 想去掉它们 我该怎么办 我的第一个方法是在有例外的情况下完成它 所以例如 public static Boolean MyMethod Stri
  • Pythonlogging.getLogger 在 AWS Glue python shell 作业中不起作用

    我正在尝试使用 Python 为我的 AWS Glue 作业设置一个记录器logging模块 我有一个使用 Python 版本 3 的类型为 Python Shell 的 Glue 作业 如果我实例化记录器而没有任何记录 则记录工作正常na
  • Android EditText 原生选择器

    我尝试将自己的设计应用于 edittext 并在启用 聚焦等情况下使用 android 本机选择器 问题是 每次我触摸 edittext 并且本机选择器正在工作时 我的 edittext 都会变小 任何人都可以建议为什么会发生这种情况吗 这
  • Ops 代表什么?

    在 Scala 社区中 我经常看到课程以Ops很常见 例如 ApplicativeErrorIdOps 什么是Ops代表 Ops 运营 这不仅在 Scala 中而且在一般情况下都是非常常用的快捷方式 在 Cats 中 它被用作扩展方法类的后
  • 如何通过此代码使用 jquery 更改 css 属性

    business 当前设置为背景 323232 我怎样才能将其更改为 000 当我点击 business 并在菜单关闭后返回到 323232 后 document ready function business click function
  • JSF 2 动态表单和 Bean 验证 JSR 303

    我从带注释的 bean 开始生成一个动态表单 使用 Hibernate Validator 对同一个 bean 进行注释以进行验证 表单已正确呈现 但提交表单时 验证步骤并未执行 如果我使用 jsf 标记编写相同的表单 则验证可以正常工作
  • setBackground() 或 setFontColor 在 GAS 中不起作用

    我在让我的脚本突出显示一个范围时遇到了麻烦 经过一番调试后 我意识到 type 的调用似乎有问题 range setBackground name of color 因此 我访问了 GAS 参考网站并使用了他们页面上的示例 https de
  • 为什么在 JavaScript 中使用链式原型继承?

    perf http jsperf com object inheritance vs object composition 为什么我们要构建原型继承链而不是使用对象组合 查找链中每一步的原型都非常昂贵 这是一些虚拟示例代码 var lowe
  • 使用 find 查找不属于 USER 或 GROUP 的文件

    我需要在 CentOS 7 中查找不属于用户或不属于组的文件和文件夹 我有3个测试目录 root root test1 root group test2 user root test3 我需要能够找到所有 3 个目录 这样我就可以在一个 f
  • R Write.CSV 错误:无法打开文件,参数无效

    这似乎是一个非常简单的问题 但我在其他地方找不到答案 所以我希望这里有人能给我指出正确的方向 我正在使用 R 脚本编写 CSV 并遇到以下错误 Error in file file ifelse append a w cannot open
  • pygame.mixer.Sound.play 尽管定期触发,但不规则

    我目前尝试每 x 毫秒重复一次声音 其中 x 取决于我通过套接字收到的 UDP 数据包 我决定使用 pygame 来实现这一点 我用这个答案每 x 毫秒重复一次 https stackoverflow com a 18954902 3475
  • CC.Net 中修改Reader 任务的示例?

    我正在尝试建立一个构建链 通过各个构建阶段传播修改历史记录 我的第一个想法是修改写入器 修改读取器对 但我无法让读者读取结果 有人有任何例子或提示吗 我使用的是最新的CC NET 1 4 4 SP1 谢谢 玩了一会就明白了 请注意 您需要最
  • 在 gdb 会话中选择调试信息文件的子集

    在我的 Fedora 盒子上我安装了很多单独的调试信息 sudo dnf debuginfo 安装