想要持续观察并偶尔检查 gdb 中当前帧之外的变量

2024-03-10

假设我定义了一个名为var在主函数中。我为其设置了一个观察点。然后我输入另一个函数func()。此时,观察点可能会被删除,这样我就无法访问该变量了。有什么方法可以让您随时随地保持观察点吗?

另外,我知道我可以使用类似的语法print main::var打印出变量的值。但这还不够。有什么好主意吗?


gdb 的一个奇怪之处是watch尝试尊重表达式所有组成部分的范围。所以,如果你watch var, and var超出范围,观察点将被删除。这也适用于更复杂表达式的元素,例如watch a + b.

当然,这是有道理的,并且在某种程度上很酷——但这很少是您真正想要的。根据我的经验,不关心范围而只想观察一些内存是更正常的。

为此,请通过-location to the watch命令。这将执行您更常见的操作——只需要表达式引用的内存。所以,watch -location var.

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

想要持续观察并偶尔检查 gdb 中当前帧之外的变量 的相关文章

  • 如何在gdb中调用汇编?

    在 gdb 中我可以使用call运行函数 但是如果我想运行一些额外的程序集怎么办 Prior to GCC 5 1 I don t know of a way to run arbitrary machine code unless you
  • 如何在 Xcode 4 中从断点操作打印字符串值?

    我有一个断点操作 并且正在使用下拉列表中的 日志 选项 我想打印出字符串 摘要 值 我正在这样做 the person name is p name 但这会打印内存地址 我可以切换到调试器命令选项并执行以下操作 po f name 但后来我
  • 如何使用GDB调试一个大项目?

    现在我有一个c语言项目 其中包括三个目录 bin inc and src 所有头文件 h 包含在 inc和所有源 c 文件存储在 src 即a c b c c c 最终生成的可执行文件位于 bin makefile编译后 会生成所有的obj
  • OSX Lion 上的 GDB 7.3.1

    我正在尝试使用 macports 中的 GDB v 7 3 1 来调试用以下命令编译的可执行文件 g 4 7 也来自 macports 但是 我启动调试器 得到以下输出 GNU gdb GDB 7 3 1 版权所有 C 2011 自由软件基
  • 如何将 gdb 附加到 docker 容器中运行的进程?

    我在 docker 容器中有一个长时间运行的进程 我想将 gdb 附加到该进程以查看正在运行的线程并获取堆栈跟踪 我可以从主机附加到进程 但无法解析任何符号 因为可执行文件位于文件系统中的不同位置 位于 docker 安装的卷中 并且共享系
  • 使用 gdb 在指定的可执行文件之外单步执行汇编代码会导致错误“无法找到当前函数的边界”

    我在 gdb 的目标可执行文件之外 甚至没有与该目标对应的堆栈 无论如何 我想单步执行 以便我可以验证汇编代码中发生了什么 因为我不是 x86 汇编方面的专家 不幸的是 gdb 拒绝进行这种简单的汇编级调试 它允许我设置并停止在适当的断点上
  • fork 后调试子进程(配置了 follow-fork-mode 子进程)

    我正在开发一个应用程序 父级分叉子级来处理某些任务 我遇到一个问题 我已将 gdb 配置为 follow fork mode 子级 但在 fork 后 到达断点后 它发送 SIGTRAP 但子级以某种方式终止并向父级发送 SIGCHLD 我
  • Google crashpad 上的一个交叉编译平台应用程序。 Ubuntu 中无法读取 dmp 文件

    我有一个小qt项目 https github com apalomer qt crashpad test我想跟踪一个分段错误 这是一个示例 分段错误是出于测试目的而手动添加的 在实际项目中我不知道留在那里的分段错误 我决定使用 google
  • 断点改变程序流程

    我正在尝试分析和逆向我拥有的 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
  • dprintf 与 break + 命令 + continue 之间有什么区别?

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

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

    对于我当前的嵌入式应用程序 我尝试将 GDB 观察点放在固定的内存地址处 例如 我的应用程序更新以下地址 0x10793ad0 为了确定代码的哪一部分破坏了值 我尝试了 watch 0x10793ad0 即使 GDB 在此之后不会打印任何错
  • 代码::块 - 警告:GDB:无法设置控制终端:不允许操作

    我已经通过官方存储库在 Ubuntu 14 04 中安装了 Code Blocks 13 12 当我编译时 一切正常 但是当我调试时 shell 中会显示以下消息 警告 GDB 无法设置控制终端 操作不正确 允许的 程序执行到断点 但当我执
  • TUI模式下的GDB:如何处理stderr与ui的交互

    我正在尝试使用gdb来调试caffe http caffe berkeleyvision org 我更喜欢使用 tui 模式 因为它允许我查看整个源代码而不仅仅是一行 但有一个问题 每当程序caffe输出一些东西stderr 输出扭曲了 t
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • 在GDB中的每一行设置断点

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

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

随机推荐

  • 是否允许类型相同但大小不同的双关数组?

    类型相同但大小不同的双关数组仍然违反严格别名吗 int arr 4 int ref 2 reinterpret cast
  • xcode 5 中的 Shell 脚本调用错误

    我在我的项目中使用 openssl 和 sqlcipher 我必须从 Xcode 4 6 升级到 Xcode 5 但是我在 Xcode 5 中编译项目 它给我错误 cp libCrypto a 没有这样的文件或目录 Cp libssl a
  • 用于匹配捕获组中前面或后面的字母字符的正则表达式

    举例来说 我有以下数据 ab cd ef zy ba cd 我希望能够以匹配第一个字符的方式来匹配它 然后根据第一个字符的捕获组匹配第二个字符 上面示例中的每一行都应该匹配 而类似cc or af不应该 详细来说 我的想法看起来像这样 基于
  • HTML img src 返回 404 未找到错误,尽管一切正常

    这是一件令人困惑的事情 首先看我的文件夹的层次结构等 https i stack imgur com b5U8a png并看到图像文件夹下有我的图像 cribbage png 我正在尝试使用 index html 中的以下代码访问此图像 h
  • 在 PostgreSQL 中连接

    我有一个带有宽度和高度 均为整数 的表格 我想按原样显示它 例如 宽度 300 高度 160 面积 300 x 160 我正在使用以下查询 select cast concat width x height as varchar 20 fr
  • 云形成的秘密

    我想坚持 所有基础设施都是代码 的政策 但是 我看不到使用 CloudFormation 来实现机密的方法 SecretsManager 要求您以纯文本形式指定 SecretString 即使您从某处注入解密的值 纯文本字符串也会显示在 C
  • NSIS - 检查注册表项值是否存在

    我需要检查注册表值是否存在 我怎样才能做到这一点 我的第一个方法 ReadRegStr 0 HKLM SOFTWARE Microsoft Windows NT CurrentVersion Ports NUL IF 0 MESSAGEBO
  • Pandas:“item”已被弃用

    到目前为止 我在这里使用了这行代码 max total gross event data max total gross loc event data event id event id item 自从我更新了 Pandas 后 我收到了未
  • MSBuild / Visual Studio 分布式构建

    我开发 维护一个需要很长时间才能构建的应用程序 例如 完整的构建需要超过六个小时 在花了一天的大部分时间构建我们的应用程序之后 我开始研究改进构建时间的方法 建议关于这个堆栈溢出问题 https stackoverflow com ques
  • JavaFX:在拖放过程中更改光标

    我试图在拖放过程中更改节点上的光标 但图像没有改变 我正在打电话setCursor in the DragDetectedEventHandler我的节点 我也尝试过打电话getParent setCursor 并得到相同的结果 我还尝试在
  • 未定义行为 (UB) 以实现余地为条件的程序是具有无条件 UB 的程序吗?

    在回答中 在 C 20 中使用 std bit cast 创建闭包 lambda 对象是否有效 https stackoverflow com questions 68828838 is it valid to create closure
  • Silverstripe 后端发生奇怪的行为?

    突然间 每当我尝试单击 silverstripe 后端中的页面时 它最初会显示如下 我正在运行 SS 3 2 当这种情况开始发生时 我升级到 3 2 1 看看是否可以解决问题 但不行 有时它也会显示此错误消息 User Warning Co
  • RecyclerView重叠无阴影

    我想开发像这张图这样的List 我曾经使用 RecyclerView ItemDecoration 进行重叠 但它是重叠的 没有阴影 屏幕和装饰器代码如下 public class OverlapDecoration extends Rec
  • 如何在html5视频上移动svg元素并同时控制视频播放?

  • 双花括号 ({{) 在 YAML 文件(Ansible 使用的)中意味着什么?

    我对 Ansible 相当陌生 并试图理解 YAML 文件 因为我不清楚这条线 file dest docroot 有人可以解释一下那些大括号 是做什么的吗 name Create Web Root when nginxinstalled
  • c++如何写构造函数?

    我不习惯 C 并且在编写构造函数时遇到问题 请参阅此示例 是我正在处理的代码的简短版本 class B public B int x class A public B b A here I have to initialize b 这会引发
  • 获取 SvelteKit 端点请求的原始正文

    我的 SvelteKit 应用程序中有一个端点 用于处理来自 Stripe 的 Webhook 请求 每个请求都经过签名 以便可以验证它是否来自 Stripe 我必须验证该事件是否来自 Stripe 的代码如下所示 import Strip
  • 如何在java web应用程序中将byte[]作为pdf发送到浏览器?

    在操作方法 JSF 中 我有如下内容 public String getFile byte pdfData how to return byte as file to web browser user 如何将 byte 作为 pdf 发送到
  • Mysql Like 包含通配符会给出意想不到的结果

    我在一个非常简单的 MySQL 数据库表中有一个 varchar 列 其中包含 2 种不同类型的产品引用 一个喜欢 14521 451 288 其他喜欢45742154 为了能够管理它们 我使用以下代码 WHERE ref LIKE 但所有
  • 想要持续观察并偶尔检查 gdb 中当前帧之外的变量

    假设我定义了一个名为var在主函数中 我为其设置了一个观察点 然后我输入另一个函数func 此时 观察点可能会被删除 这样我就无法访问该变量了 有什么方法可以让您随时随地保持观察点吗 另外 我知道我可以使用类似的语法print main v