在 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 会话中选择调试信息文件的子集 的相关文章

  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • Xcode“使用性能工具运行”被禁用?

    我正在尝试从我的 Xcode 项目中查找内存泄漏 我不知道发生了什么 我无法选择任何内容Run gt Run with performance tool 事物列表被禁用 请帮助我 我是初学者 问题是我已经删除了构建文件夹并尝试使用性能工具运
  • 什么是特权指令?

    我添加了一些可以干净编译的代码 并且刚刚收到此 Windows 错误 MonTel Administrator 2 12 7 MtAdmin exe Application Error The exception Privileged in
  • :target 伪类在 Firefox 中无法正常工作

    我正在使用 target 伪类制作一个具有 CSS 灯箱类型效果的页面 当您单击图像时 会弹出一个包含信息的框 当您单击任意位置时 该框会再次消失 它在 Chrome 和 IE 中运行良好 但在 Firefox 中存在一个奇怪的错误当您将鼠
  • Fortran 在 gdb 中打印可分配数组

    我正在向开源科学代码添加一些功能 我使用很多可分配项 但在正确打印它们时遇到一些问题 例如 我声明并分配 然后使用 real dp allocatable psi n phi some other stuff here allocate p
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • Visual Studio 不允许我在 Android 物理设备上进行调试

    我正在使用 Xamarin 和 Visual Studio 2013 开发 Android 应用程序 我已将 Android 小程序连接到计算机 Sansung Kies 识别了该设备 Adb 也能识别它 因为当我输入 adb device
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • Xcode 调试器 - 如何在 CPU 指令级别单步执行

    这绝对是令人着迷的 但我对编译器如何巧妙地将 C 代码转换为机器指令感到着迷 由于我对某些指令有点模糊 因此如果我能够在单个机器指令级别 低于 C 语句级别 可能会生成多个 CPU 指令 观察已编译程序的操作 将会很有帮助 换句话说 我可以
  • 调试自定义 Kafka 连接器的简单有效的方法是什么?

    我正在使用几个 Kafka 连接器 在控制台输出中没有看到它们的创建 部署有任何错误 但是我没有得到我正在寻找的结果 没有任何结果 无论是期望的还是否则 我基于 Kafka 的示例 FileStream 连接器制作了这些连接器 因此我的调试
  • 有没有办法通过 WiFi 部署/调试 Cordova Android Ionic 应用程序? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 这是一个双胞胎this https stackoverflow com questions 46596236 is there a w
  • UNIX系统调用监视器

    如何监控进程的系统调用 Check strace http linux die net man 1 strace 在最简单的情况下 strace 运行指定的命令直到退出 它拦截并记录进程调用的系统调用以及进程接收的信号 每个系统调用的名称
  • 无法在 Visual Studio 2010 (F5) 上启动调试器但是,“附加到进程”确实有效(速度慢)。怎么修?

    环境 全新 全新 安装 Windows 7 64 位 全新 新 安装 Visual Studio 2010 Professional 10 0 30319 1 Windows 更新已是最新的 问题 我无法在 Visual Studio 20
  • 为什么我收到“在嵌套函数中通过 this 对类字段进行潜在无效的引用访问”错误

    在普通 JS 中 我的代码可以正常工作 对于这种情况 我想组件化我的Wall类应该在浏览器中显示用户上传的图像 同样 这在 vanilla JS 中正常工作 但在 JSX 中不起作用 我得到了一个potentially invalid re
  • Visual Studio 加载符号

    我正在研究一个冷聚变 http en wikipedia org wiki ColdFusion项目已经有一段时间了 Visual Studio 至少对我来说开始表现得很奇怪 我观察到 当我开始调试时 它构建了项目 开始部署 部署完成并开始
  • _CrtCheckMemory使用示例

    我试图了解如何使用 CrtCheckMemory追踪我正在开发的 Windows 应用程序中的堆损坏 我似乎无法让它返回false 这是我的测试代码 int test new int 1 for int i 0 i lt 100 i tes
  • 使用 pgAdmin 调试 PostgreSQL 函数

    I refer this http www postgresonline com journal archives 214 Using PgAdmin PLPgSQL Debugger html启用 PostgreSQL 服务器中的调试器
  • “gdb”调试器奇怪地跳过断点

    这是我的代码的一小段 l2tp inspector cc 14 else if f info gt key proto UDP PROTO 15 if size gt 4 16 uint32 t l2tp part 17 l2tp part
  • Visual Studio 调试器 - 自动变量分配

    我正在开发一个多开发人员项目 正在开发的应用程序是通过启动器应用程序启动的 该应用程序传递登录用户 位置等参数 现在 当我调试应用程序时 我在代码上设置了一个断点解析输入参数 并将用户名变量分配给我的用户名等 我可以对这些值进行硬编码 但是

随机推荐

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

    我正在使用相对布局动态构建视图 网格 例如 如果有 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 安装