使用 libtool 和 gdb

2024-04-30

我正在开发一个使用 GNU 自动工具的项目,因此为了使用 gdb 调试代码,我从 libtool 中运行 gdb:

libtool --mode=execute gdbtui foobar

是否可以重新加载项目的修改版本,而不必退出 gdb/libtool 并重新启动?


libtool --mode=execute创建一个传递给 gdb 的临时可执行文件。该可执行文件在重建时被删除。诀窍是用类似的东西重新创建它

libtool --mode=execute echo ./hello

(Libtool 将重新创建临时可执行文件并将其名称传递给echo命令。您可以使用任何其他命令代替echo, e.g. true抑制输出,甚至抑制不存在的输出。)

要重新加载可执行文件,请使用 gdbfilefilename https://sourceware.org/gdb/current/onlinedocs/gdb/Files.html#index-file命令文件。 gdb 在启动时显示可执行文件的真实名称:

$ libtool --mode=execute gdb --args ./hello
...
Reading symbols from /path/to/.libs/lt-hello...done.
(gdb)

gdb也显示info inferiors https://sourceware.org/gdb/current/onlinedocs/gdb/Inferiors-and-Programs.html#index-info-inferiors命令:

(gdb) info inferiors 
  Num  Description       Executable        
* 1    <null>            /path/to/.libs/lt-hello

当然,通过上述echo命令。

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

使用 libtool 和 gdb 的相关文章

  • 使用 BR2_EXTERNAL 修改 Buildroot 源包的自动工具选项的正确方法是什么?

    我想改变
  • 有没有办法在 gdb 中设置一个以调用堆栈为条件的断点?

    我正在 Linux 上的 gdb 7 1 中调试 C 我有一个函数a 代码中很多地方都会调用它 我想在其中设置一个断点 但前提是它是从b 有什么办法可以做到吗 有没有办法做到这一点 只有当b 被叫自c 等等无穷无尽 Update 现在有一个
  • dprintf 与 break + 命令 + continue 之间有什么区别?

    例如 dprintf main hello n run 生成与以下内容相同的输出 break main commands silent printf hello n continue end run 使用是否有显着的优势dprintf ov
  • 专门逐行调试

    我有一个用 Pascal 编写的脚本 我会以这种方式调试它 在每一行停止 转储内存中所有变量的值 然后转到下一行 是否可以使用 gdb 或其他 Linux 开源工具来完成此操作 使用选项编译文件 g fpc gpc g file pas R
  • 使用 gdb 调试反汇编库

    在Linux和Mac OS X中可以使用strapi和next来调试应用程序而无需调试信息 在 Mac OS X 上 gdb 显示在库内部调用的函数 尽管有时会在每个 stepi 指令中推进多个汇编程序指令 在 Linux 上 当我进入动态
  • C 预处理器“/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cpp”未通过完整性检查

    在使用 Xcode 11 3 的 macOS Mojave 上 我有一个基于 Autotool 的第三方库 在终端中运行我的构建脚本时构建得很好 但在 Xcode 中运行时失败Run Script步骤为 BuildScript Showin
  • 通过相同的 Makefile 生成 Makefile 的包含文件

    在我的程序中 我有一个有点复杂的构建过程 目前 在我使用的一个目录中include in Makefile am对于一个文件 该文件不存在 但必须自行构建 原因是这个包含文件相当长 此外 在实际程序中 它不仅仅是一个文件 而是多个文件 并且
  • 在GDB中的每一行设置断点

    有没有办法用GDB在代码的每一行设置断点 明明我不想打b addr对于每一行 所以我想知道是否有一种快速的方法来做到这一点 Edit请注意 我正在运行由其他人创建的二进制文件 并且我无权访问源代码 不幸的是 该二进制文件尚未使用 g 标志进
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 使用maven2构建基于autotools的C/C++包

    我正在开发一个 MATLAB Java 和 C C 组件集合 这些组件都可以互操作 但具有明显不同的编译 安装步骤 我们目前不为 MATLAB 编译任何内容 使用 maven2 进行 Java 构建和单元测试 并使用 autotools 进
  • “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
  • 如何将STL容器数据转储到gdb中?

    我无法在 gdb 中转储 STL 无序映射容器值 变量类型是 std unordered map var 我的 gdb 版本 7 7 1 GDB配置 configure host x86 64 linux gnu target x86 64
  • 使用 math.h 函数时 gdb 给出奇怪的输出[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 gdb 将 sqrt 3 计算为 0 https stackoverflow com questions 5122570 why does gdb evaluate sqrt3 to 0 这里
  • 如何让 UIAutomation、模拟器和 Xcode 调试器同时运行?

    谁能向我指出有关如何使 Instruments 运行 UIAutomation 脚本并使用在模拟器中运行的调试器启动 iPhone 应用程序的文档 限制条件 我只有 iPhone 3g 硬件来测试和调试 而 UIAutomation 无法可
  • 评估 gdb 中的变量/函数

    我有以下代码 char seg mmap 0 printf seg x n seg 该程序打印seg b7ffd000 而在 gdb 中 对于相同的执行 当使用p x seg 它打印 2 0x0 我在这里很困惑 这不是同一个var吗seg
  • 使用 gdb 调试 qemu

    如何使用 gdb 调试 qemu 我一直在谷歌搜索但找不到任何具体的东西 我在 GDB 7 5 中遇到错误 gt 访问内存地址时出错 似乎 位置独立可执行文件 有问题 所以使用 configure enable debug disable
  • Ruby 解释器出现段错误后,是否可以从 corefile 中获取 Ruby 回溯?

    Note 我使用了在使用 libxml ruby gem 时遇到的段错误来说明问题 但我已经用所述 gem 解决了我的问题 这个问题真正涉及的是从 gdb 使用 corefile 查看 Ruby 回溯 即解释器在 Ruby 代码无法处理异常
  • 使用 GDB 远程调试 MPI

    我正在尝试从 pi 的远程访问组中调试我使用 MPI 编写的代码 我无法直接访问 Pi 以便能够使用 GUI 来调试代码 我已经尝试过使用屏幕显示的内容question https stackoverflow com questions 3
  • gdb:显示一些数据的类型信息

    基本上 我想得到typeid this name 即真实类型this 我想在GDB中得到这个 不修改源代码 我试过print typeid this 但它说typeid未知 因为我没有将其包含在源文件中 Use ptype命令 像这样 gd
  • 从 gdb 设置 std::string 变量值?

    是否有可能 当调试器在断点处停止时 修改 std string 变量的值 而不需要采取诸如调整当前缓冲区的内存映像之类的黑客手段 例如类似于 set var mystring hello world 试试这个 经过测试并且对我有用 call

随机推荐

  • 在 Objective c 中计算 LRC

    我想计算通过蓝牙发送的消息的 LRC 例如 这是一条消息 消息结构为STX MESSAGE FS EXT LRC 02 1212004123422826E0B8C0F000F0A00182620000蒂龙系统沃特福德 UKR 1C 03 6
  • 装配中出现奇怪的字符?

    我写了以下代码 386 model small stack 100h data text db Paper 0 code start lea dx text mov ah 9h int 21h mov ah 4ch int 21h end
  • 如何通过 Selenium 通过 XPath 访问 WebElement?

    我需要访问该网站上搜索结果的链接 并将它们放入WebElement 但我无法按班级或任何其他方式找到它们 使用时xpath MyWebDriver findElement By xpath div class inner results f
  • Flask-SQLAlchemy .count() 和 .all() 的记录计数不同

    在 SQLAlchemy 中 ModelName query filter by field name value count 返回正确的记录数 但是ModelName query filter by field name value al
  • django 序列化器到 json - 自定义 json 输出格式

    我对 django 很陌生 最近我需要 JSON 输出 为此我使用以下 django 代码 data serializers serialize json Mymodel objects all 它工作得很好 除了我得到的输出 pk 897
  • ASP.NET C# 捕获类中的所有异常

    我知道这不是正确的做法 而且根本不干净 我只是想知道这是否可能 如果我有一个包含很多方法的类 public class Foo methodA methodB methodC 是否可以捕获所有可能发生的异常 而不必在每个方法中编写 try
  • ClassCastException:ApiVersionImpl 无法转换为 java.lang.Integer

    我有 android gradle 项目 当我尝试启动应用程序时出现以下异常 ClassCastException com android build gradle internal model ApiVersionImpl cannot
  • 如何阻止TreeItem选择?

    我正在与一个TreeTableView JavaFX 8 有一些树节点必须禁用才能选择 我已经尝试过选择活动 但它不起作用 请查找以下代码以获取更多信息 treeTableView getSelectionModel selectedIte
  • div 上的两个线性渐变层

    我有一个彩色矩形 div 在其上放置 45 度的线性渐变以实现类似斑马的效果 我想将第二个渐变分层 角度为 135 度 与前一个渐变正交 height 30px background color rgb 255 0 0 background
  • 合并文件夹中多个文件的内容

    我有大约 30 个目录 其中包含 log 文件 我想进入每个文件夹并分别合并子目录中所有文件的文本 我不想合并所有子目录中所有文件的文本 Example 我有一个名为 Machines 的目录 in Machines I have Mach
  • 在 Python 3 中,两个正数相乘会得到负输出

    我有一个数据框df1 df1 head wght num links id y id x 3 133 0 000203 2 186 0 000203 2 5 6 0 000203 2 98 0 000203 2 184 0 000203 2
  • Selenium/ChromeDriver 未知策略错误

    我目前使用 Python v3 5 1 Selenium v3 7 和 Chromedriver v2 33 当我运行以下命令时 from selenium import webdriver driver webdriver Chrome
  • Apache Cassandra 如何进行聚合操作?

    总的来说 我对 Apache Cassandra 和 nosql 相当陌生 在 SQL 中 我可以执行聚合操作 例如 SELECT country sum age count AS averageAge FROM people GROUP
  • 如何将 textblock.foreground 绑定到变量? (WPF C#)

    所以我希望改变我的程序 以便我可以运行一个函数来检查前景色是否应该是黑色或银色 我希望将不可 访问 的字段灰显 My form currently looks like 我希望将 无需维护 字段 灰显 但我在尝试在数据模板中定义字体前景的绑
  • 2017 年在 OS X 上从源代码构建 Apache Hadoop

    到目前为止 我已经分叉了 Git 存储库 https github com apache hadoop 我一直在寻找有关如何从源代码构建的信息 我尝试过以下命令 mvn package Pdist Dtar DskipTests 这导致了以
  • 使用枚举作为常量表达式。哪个编译器是正确的?

    以下代码使用枚举成员m作为常量表达式 即作为模板参数 该代码可以在 gcc 下编译 但不能在 clang 下编译 现场演示 http coliru stacked crooked com a 79f0d052864fec19 20live
  • .NET 电话号码解析库

    有谁知道 NET 的通用电话号码解析库吗 理想情况下 我正在寻找类似于 Ruby 的东西Phone http github com carr phone图书馆 我会选择 Google libphonenumber 库的 C 端口 https
  • 从绝对路径获取名称,从最后一个斜杠获取子字符串,java android

    我想提取绝对路径的名称 如果我有一个值为 mnt sdcard Videos Videoname 的字符串 我想保存一个值为 Videoname 的字符串 字符串正在变化 我之前无法获取斜杠的数量 如何从最后一个斜杠中分割子字符串 mnt
  • 带括号和不带括号的函数之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 Scala 中的函数与方法 https stackoverflow com questions 4839537 functions vs methods in scala Scala 中 def fo
  • 使用 libtool 和 gdb

    我正在开发一个使用 GNU 自动工具的项目 因此为了使用 gdb 调试代码 我从 libtool 中运行 gdb libtool mode execute gdbtui foobar 是否可以重新加载项目的修改版本 而不必退出 gdb li