使用带有管道输入的 gdb 而不创建文件

2023-12-04

我有一个接受管道输入的程序:

bash> echo "something" | ./program 'seomthingelse'

如何将此输入重定向到 gdb,而不创建新文件?


如何将此输入重定向到 gdb,而不创建新文件?

  • 您可以创建一个命名管道(不确定这是否算作“新文件”——why您是否试图避免新文件?)
  • 您可以在程序中添加延迟,然后启动它echo "something" | ./program 'seomthingelse',并在它仍处于延迟状态时从另一个窗口附加到它。

第二种解决方案对于那些非常注重如何调用的程序通常非常有用,并且我发现以下实现效果很好:

int main(int argc, char *argv[])
{
  if (getenv("WAIT_FOR_GDB") != NULL) {
    int done = 0;
    while (!done) sleep(1);
  }
  /* rest of main */
}

然后你设置WAIT_FOR_GDB在环境中,并且可以花费任意时间来附加进程。连接后,步骤up from sleep, set var done = 1,设置您需要的任何其他断点,以及continue.

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

使用带有管道输入的 gdb 而不创建文件 的相关文章

  • 在GDB中,如何在程序停止时自动执行命令? (如显示)

    我希望每次程序停止时自动执行一些命令 就像 display 对 x 所做的那样 我怎么做 这是我发现的简单方法 define hook stop commands to be executed when execution stops en
  • 编译器的“-O0”选项和“-Og”选项有什么区别?

    当我想要调试 C 或 C 程序时 我被教导使用 O0关闭优化 以及 ggdb将符号插入到为使用 GNU 而优化的可执行文件中gdb调试器 我使用它 或者 你可以使用 glldb对于 LLVM clang 来说lldb调试器 或者只是 g对于
  • 是什么让GDB拒绝崩溃?

    我在这里不知所措 我正在用 C 编写一个编译器 出于爱好 并使用 GDB 7 3 在 amd64 Linux 2 6 32 上使用 GCC 4 6 1 进行编译 除了通常的 I 等之外 标志还有 Wall Wextra O0 g 我有一个函
  • 我可以使用 GDB 来调试正在运行的进程吗?

    在linux下 我可以使用GDB来调试当前正在运行的进程吗 您可以使用以下命令附加到正在运行的进程gdb p PID
  • 当 std::cerr 上打印某些内容时设置 gdb 断点

    我使用 qt creator 作为 gdb 的 IDE 和前端 当对 std cerr 变量调用operator 如何在 std cerr 设置断点 你的问题没有意义 std cerr是一个全球性的variable 您只能在函数上设置断点
  • gdb print :执行的每个语句的行号

    我有一个确定性的 halting 程序与no IO 我想要使用 gdb 运行并让它打印执行的每个 c 语句 例如文件名 行号
  • 在不附加 GDB 的情况下获取所有线程的堆栈跟踪

    有没有一种方法可以在不附加 GDB 的情况下打印所有线程的堆栈跟踪 或者是否有一个命令可以用作 gdb 批处理模式来打印所有线程的堆栈跟踪 elfutils https sourceware org elfutils 除其他实用程序外 还包
  • 如何使用gdb来探索堆栈/堆?

    谁能给我一个快速概述 给我指出一种检查 C 程序堆栈 和堆 的方法的文档 我认为这应该用 GDB 来完成 但如果有其他更直接的替代方案 那么也应该没问题 Thanks 您可以使用 x 命令转储原始内存 因此 如果您想查看堆栈或堆的位 请尝试
  • 在 Linux 的 gdb 中启用 memleak 选项

    我试图查看哪个进程导致内存泄漏 并转储导致它的堆以查看问题所在 我应该在 gdb 中使用哪个命令来设置内存泄漏并检查堆 I tried gdb check leaks checkpoint can t find fork function
  • 用于 RHEL 的 gdb-multiarch

    我正在尝试寻找方法来运行gdb 多架构RHEL 中的命令 我已经安装了用于 ARM 处理的 QEMU 模拟器 我想安装GDB进行调试 我能够安装GDB 多体系结构在 Ubuntu 中运行命令成功 sudo apt get GDB multi
  • GDB可以杀死一个特定的线程吗?

    我正在运行一个应用程序 firefox 我想知道是否可以使用 GDB 附加到进程并杀死特定线程 有没有办法做到这一点 我知道此操作可能会使应用程序崩溃 EDIT 在此调试会话中 ps ax显示firefox pid是1328 gdb App
  • 如何让 gdb 保存命令历史记录?

    我该如何设置gdb这样它就可以保存命令历史记录 当开始新的gdb会话 我想使用向上箭头键来访问之前会话的命令 简短回答 mkdir p config gdb echo set history save on gt gt config gdb
  • 断点改变程序流程

    我正在尝试分析和逆向我拥有的 Objective C 程序 我通过手动更改一些操作码对可执行文件进行了一些修改 然而 当我测试修改后的软件时 我得到 死亡人数 9 没关系 我想我触碰了不该触碰的东西 我当时就推出了gdb myprogram
  • GDB 函数参数上的条件中断

    我想在函数参数大于某个值时设置断点 下面的虚拟代码 int main void uint64 t num 123456 uint64 t x 847534 uint64 t other num x x num other stuff her
  • GNU gdb 如何显示源文件名和符号行

    当使用 GNU gdb 调试 c 进程时 list 命令将打印行但不告诉我文件名 设置断点可以显示我想要的所有行和文件信息 但我不想设置断点并且必须禁用或删除它 gdb b oyss funtion Breakpoint 13 at 0x8
  • “劣质调试器”一词中的“劣质”是什么意思?

    我不太明白GDB手册中对inferior的解释 谷歌也没有提供任何更有帮助的信息 谁能简单地解释一下 低等 劣质 是一个通用术语 表示 您正在使用 gdb 来调试的东西 通常是在模拟器或通过串行线路连接的其他硬件上运行的进程或内核 当您使用
  • gdb 错误 - 文件不是可执行格式:无法识别文件格式

    我正在尝试使用 gdb 调试某个名为 xdf 的程序 但是当我运行 gdb xdf 时 出现以下错误 home nealtitusthomas X ray astronomy heasoft 6 24 x86 64 pc linux gnu
  • 如何将整个 GDB 会话转储到文件中,包括我输入的命令及其输出?

    在 bash 中 我可以使用script命令 它将 shell 上显示的所有内容转储到文件中 包括 键入的命令 PS1 line 命令的 stdout 和 stderr gdb 中的等效项是什么 我试着跑shell script从 GDB
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl

随机推荐

  • MSDN 文档错误? “如果该过程是共享的,则其所有局部变量都会自动共享。这包括静态变量。”

    我正在查看有关 VB Net 很少使用的 MSDN 文档Static局部变量的关键字 我的问题是not关于静态的工作原理 我个人计划避免使用它 因为它似乎会给未来没有注意到副作用的程序员带来悲伤 我的问题是关于文档中的这个声明 任何局部变量
  • 将 Bootstrap 类名添加到 Typo3 表

    是否可以将 Bootstrap 表类添加到 Typo3 v6 1 中创建的表中 我在创建 Table 类型的页面时注意到设置 Additional CSS Class 但是 它不会向我的表添加任何类 它不支持添加多个类 逗号 空格等在保存时
  • 如何使用新的 Material Design 图标主题:轮廓、圆形、双色调和锐利?

    谷歌已经对其进行了改造材料设计图标有 4 个新的预设主题 轮廓 圆形 双色调和锐利 除了常规的填充 基线 theme 但不幸的是 它没有说明如何使用新主题 我去过通过 Google Web Fonts 使用它通过包含链接 然后使用所需的图标
  • 关闭 docker-compose 后 Docker 卷不保留数据

    我正在使用 docker compose 组合 2 个图像 tomcat 与我的应用程序和数据库 postgres 我的撰写文件如下所示 version 3 services tomcat build tomcat img ports 80
  • as_bytes 函数的精确定义

    我在阅读时发现了这个函数 但找不到它的定义CPP参考 Bjarne stroustrup 的编程原理 它的使用方式如下 ifs read as bytes x sizeof int 我明白如何read有效 但你仍然可以帮助我to bytes
  • 在 webkit 浏览器中使用 标签时,带有嵌入位图的 SVG 不显示位图

    我正在尝试使用带有嵌入位图的 SVG 作为导航元素 这个想法是让它更加适合移动设备 我已经为 IE8 及更低版本设置了 PNG 后备 不知何故 嵌入的位图不会在基于 webkit 的浏览器中显示 没有嵌入位图的 SVG 显示就可以了 我可以
  • 动态更改 Highstock 中的范围

    我想动态更改图表中的范围 如果我从大值变为小值 一切都会正常 但如果我想再去更大的地方 就什么也不会发生 你可以在这里尝试一下 http jsfiddle net Charissima wkBwW 15 单击按钮 Range 50 然后单击
  • 使用 python 进行敏感性分析

    我正在尝试执行敏感性分析 并且我开始学习 python 所以我想在 python 中完成此任务 我发现了一个名为SALib但我真的不知道如何实现我自己的方程 例如 这是我的等式 ET 0 0031 C R 209 t t 15 1 首先我必
  • 使用 jQuery 从子域获取 JSON

    I have user1 mydomain com and user2 mydomain com域 我用api mydomain com通过 AJAX JSON 处理我的 Web 应用程序 所以 我想发出一个 POST 请求user1 my
  • 拨打号码时启动我的应用程序

    我想在拨打新号码或联系人号码时将我的应用程序显示为一个选项 我已关注这个话题 我有一个具有单一活动的应用程序 这是清单文件
  • 如何在 MySQL 中搜索 Soundex() 子字符串?

    我的 Joomla 有问题 3 集成搜索引擎 该引擎的索引器在索引内容时创建所谓的 soundex values 例如 测试对象 测试对象1 测试对象2239923 文本对象 它们都具有相同的 soundex 值 T23123 现在我的问题
  • 使用 C# 更改文件扩展名

    我有很多文件类型 pdf tiff jpeg bmp ETC 我的问题是如何更改文件扩展名 我试过这个 my file c my documents my images cars a jpg string extension Path Ge
  • PHP 脚本(嵌入式或其他形式)的安全性

    我对嵌入 PHP 代码的 HTML 网页 以 webpage php 形式存在于服务器上的网页 或可能被 HTML 页面引用的 PHP 脚本 即 PHP 脚本实际上不是网页的一部分 以 something php 形式存在于服务器上 并由
  • 使用 crontab 运行 PHP 脚本

    我知道 SO 是针对问题的 但无论我查了多少教程 我都无法得到我的crontab工作 我正在建立一个网站 该网站将依赖于crontab每天晚上重置我的数据库中的特定设置 这是我的crontab file Edit this file to
  • 如何在结构体字段中表示不透明类型

    我正在使用 genawater 箱来实现生成器函数 单线程 多任务 我有这段代码来创建一个新线程 并向其传递一个生成器 但我正在努力 找到如何表示impl Future输入那个gen 返回 use genawaiter rc gen Gen
  • getView 中的自定义 ArrayAdapter setBackground

    我正在开发一个 ListActivity 它将显示一堆数字 权重 我想更改 ListView 中特定行的背景 为此 我创建了 ArrayAdapter 类的自定义实现 并重写了 getView 方法 该适配器接受数字列表 并将数字 20 的
  • Firebase:对大型数据集的查询

    我正在使用 Firebase 来存储用户个人资料 我尝试在每个用户配置文件中放入最少量的数据 遵循有关结构化数据的文档中建议的良好实践 但由于我有超过 220K 个用户配置文件 因此在以 JSON 格式下载所有用户配置文件时 它仍然代表 1
  • Python - 在图中寻找模式

    该图是由以下生成的gnuplot脚本 这estimated csv文件可以在此链接中找到 https drive google com open id 0B2Iv8dfU4fTUaGRWMm9jWnBUbzg GNU Plot set st
  • 检查 Bash 数组是否包含值

    在 Bash 中 测试数组是否包含某个值的最简单方法是什么 这种方法的优点是不需要循环所有元素 至少不需要显式循环 但是由于array to string internal in array c仍然循环遍历数组元素并将它们连接成一个字符串
  • 使用带有管道输入的 gdb 而不创建文件

    我有一个接受管道输入的程序 bash gt echo something program seomthingelse 如何将此输入重定向到 gdb 而不创建新文件 如何将此输入重定向到 gdb 而不创建新文件 您可以创建一个命名管道 不确定