Strace 检测到对 brk 的调用,但 GDB 不会在断点处停止

2024-01-04

我已经尝试调试内存泄漏相当长一段时间了。我的主要问题是无法使用像 Valgrind 之类的正确工具,所以我选择了普通的 GDB + strace。

我的程序是一个循环。在每次迭代中,它都会创建一些对象,然后调用它们的析构函数。正如它所解释的here https://www.google.com/amp/s/deathandthepenguinblog.wordpress.com/2015/08/15/poor-mans-memory-leak-detection-with-strace/amp/,在循环的第一次迭代的第一次分配之后,程序不应该要求更多的内存,因为它总是分配相同的对象,因此应该总是重用相同的空间。然而我的程序调用brk()每 15 次迭代,参数传递给brk每次增加 4.096(例如,第一次:brk(0xb7887000) = 0xb7887000,第二次:brk(0xb7888000) = 0xb7888000,第三次:brk(0xb7889000) = 0xb7889000, 等等)。

然后我尝试将 GDB 连接到我的程序,让程序运行几次迭代,并在 brk 上设置一个断点(gdb) break brk.

它说它在一个地址上设置了一个断点,但即使我让我的程序运行超过 15 次迭代,该断点也永远不会被“调用”(?)。

为什么会发生这种情况?我怎样才能理解发生了什么事?


None

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

Strace 检测到对 brk 的调用,但 GDB 不会在断点处停止 的相关文章

  • 使用 AJAX 加载的 Javascript 和 MVC4 部分视图

    我有一个 ASP NET MVC 4 视图 可以动态地将两个嵌套部分加载到 div 通过 JQuery AJAX 调用的元素 每个部分都有一大堆自己的 Javascript 为了让它全部正常工作 我目前将所有 Javascript 都放在s
  • 使用 IntelliJ 调试 Java 进程 - 连接到套接字但不连接到目标 VM

    现在已解决 请参阅问题末尾 我正在尝试使用 IntelliJ Community Edition 的调试器来调试 Java 进程 套接字正在侦听 但是当我尝试连接时 调试过程显示以下内容 连接到目标虚拟机 地址 8003 传输 socket
  • 阻止特定 URL 进行测试的最佳方法是什么?

    我正在使用 Google Chrome 和 Fiddler 版本 4 4 观察一个网站 该页面正在使用 AJAX 来更新其数据 我想阻止特定的 URL 以测试如果它不起作用会发生什么 阻止 URL 最简单的方法是什么 你希望发生什么 转到自
  • 多线程调试器[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 GDB 在使用多线程 pthreads 进行调试时存在严重问题 nix 上还有其他好的 C C 多线程调
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • XCode 调试 - 我可以绕过反汇编代码的单步执行吗

    调试项目时 在 XCode 中设置断点后 我将开始单步执行代码 然后我会遇到反汇编代码 我认为这些代码是对没有可用源代码的各种框架的调用 这是一个正确的假设吗 有没有一种方法 可能通过我尚未找到的项目设置 来抑制此汇编代码的显示 而不必单步
  • 如何调试apache虚拟主机配置?

    我的 apache 虚拟主机配置再次出现问题 使用默认配置而不是我的特定配置 问题不在于配置错误 而在于如何解决它 有人有好的建议可以快速解决此类问题吗 更多信息 默认的conf文件是这样的 NameVirtualHost
  • Android SQLite 从代码中转储数据库以进行错误报告

    我正在为我的一个 Android 程序开发一种诊断工具 本质上 如果用户遇到问题 我想做一些类似 SQLite 的事情dump 参考 http www sqlite org sqlite html http www sqlite org s
  • 在pycharm中调试python代码

    这个问题类似于this https stackoverflow com questions 10240018 how to use pycharm to debug python script一 我正在尝试调试pyethapp https
  • 为什么我无法调试动态加载的程序集?

    我正在开发一个 Web API 项目 该项目使用内部模拟框架 允许拦截和修改来自控制器的响应 它使用 MEF 加载包含某些先决条件匹配时执行的代码的程序集 我知道这是正常工作的 因为我可以在响应中看到模拟已被执行 但由于某种原因我无法调试动
  • 如何在Codeblocks中调试?

    我刚刚完成了程序编码 但面临一些逻辑错误 我想调试程序 我正在使用Codeblocks 那么我需要做什么才能在程序运行时查看每个变量的状态和值 并逐行浏览程序 我基本上想做你在 Visual Studio 中做的事情 当你逐行浏览时 每个变
  • Android C++/C 调试器中的错误,参数值不正确

    我最近在 Android Studio 中调试 C C 应用程序时遇到了一个非常奇怪的问题 我在用Android Studio 3 0 这是我的JNI Call JNIEXPORT jshortArray JNICALL Java net
  • Visual Studio 2015 RTM - 调试不起作用

    我已经安装了 VS 2015 RTM 仅此而已 并且无法调试任何解决方案 无论它是现有解决方案还是全新解决方案 使用 VS 2015 创建并针对 Net Framework 4 6 编译 它只会打开一个VS 中的新选项卡称为 中断模式 其中
  • 是否可以根据函数要返回的内容在函数末尾设置条件断点?

    我有以下更复杂的版本 unsigned int foo unsigned int bar unsigned int myFunc return foo bar 就我而言 myFunc从很多地方调用 在其中一种情况下 出现了问题 通过进一步调
  • 为什么我的调试器在视觉上停止在错误的行?

    我在用 email protected cdn cgi l email protection email protected cdn cgi l email protection email protected cdn cgi l emai
  • 如何从 Java 生产代码中删除调试语句

    编译器是否可以从生产代码中删除用于调试目的 例如日志记录 的语句 调试语句需要以某种方式进行标记 可能使用注释 设置属性 debug true 并在每个调试语句中检查它很容易 但这会降低性能 如果编译器能够简单地使调试语句消失 那就太好了
  • 如何让 ipdb 在调试时显示更多行上下文?

    默认情况下 在 IPython 中调试期间 ipdb http pypi python org pypi ipdb显示代码中当前位置的上方一行和下方一行 有没有简单的方法可以让显示的区域更大一点 我认为它是可配置的 但一直无法找到它 您可以
  • /proc/kmsg 和 dmsg 有什么区别?

    我们通常这样做cat proc kmsg or dmesg从用户空间查看内核日志 我明白了dmesg是一个循环缓冲区 它从kmsg 但是kmsg也不是循环缓冲区 它们之间有什么区别和联系呢 宽松地说 dmesg 是一个转储 proc kms
  • 漂亮的地图打印机会抛出类型错误

    我已经使用配置了漂亮的打印机http wiki eclipse org CDT User FAQ How can I inspect the contents of STL containers 3F http wiki eclipse o
  • 如何配置 qt Creator 以显示 C++ 代码而不是反汇编程序?

    昨天我做了很多事情 比如更新 GCC Clang 和重新安装 Qt Creator 今天 在逐步调试我的代码时 调试器显示的是反汇编代码 而不是我编写的 C 代码 紧迫F10 or F11 调试器正在进入汇编代码而不是 cpp nor h我

随机推荐

  • 如何设置变量等于单元格地址?

    我必须找到 B 列中的下一个空单元格 变量 coluna amostras 保存其地址 使用变量 inserir 并使用它来粘贴新的行数据 但是 我不知道如何将地址存储在 inserir 变量中 正如其定义 Excel 返回 运行时错误 9
  • 如何获取MPDF的总页数?

    我正在使用 PHP MPDF 创建 PDF 文件 在页脚 我可以使用打印当前页码 PAGENO 但是如何获取 PDF 文件的总页数呢 这样我就可以在页脚中打印如下内容 Page Current Page of Total number of
  • Control 单击或 Shift 单击多个项目并拖动它们

    我一整天都在浏览这些论坛并尝试了很多插件 即 jquery hotkeys js 和http thechriswalker net select drag http thechriswalker net select drag 这里的示例配
  • Grappa Graphviz dot-可视化问题与疑问

    我正在使用这个点代码进行测试 digraph G edge dir none p1 shape circle style filled label height 0 01 width 0 01 q1 shape circle style f
  • 重新转换 Java Instrumentation Agent 库中的本机方法

    我正在尝试编写一个通过 Attach api 动态加载的 Java 代理库 以重新转换某些方法 出现在某些线程的堆栈跟踪中的方法 以记录方法进入 退出 然后通过自定义导出方法入口 出口信息MBean 到目前为止 只要检测的方法不是本机的 我
  • 如何使用selenium获取带有javascript渲染源代码的html

    我在一个网页中运行查询 然后得到结果 url 如果我右键单击查看html源 我可以看到JS生成的html代码 如果我只是使用urllib python无法获取JS代码 所以我看到了一些使用硒的解决方案 这是我的代码 from seleniu
  • GAE self.request.cookies 返回一个空字典

    我正在尝试覆盖CheckIsAdmin方法存在于ApiCallHandler班级 所以我跟着this https stackoverflow com a 33652077 3297613回答 但我在打印时总是得到空字典self reques
  • Swift 中的自定义类集群

    这是一个比较常见的设计模式 https stackoverflow com a 17015041 743957 https stackoverflow com a 17015041 743957 它允许您从您的返回子类init calls
  • 从特定于语言环境的字符串获取 NSDecimalNumber?

    我有一些特定于区域设置的字符串 例如 0 01 或 0 01 我想将此字符串转换为 NSDecimalNumber 来自到目前为止我在互联网上看到的例子 http developer apple com documentation Coco
  • WP8.1 InvokeScript 错误

    我正在开发 Windows Phone 8 1 应用程序 我对 WebBrowser 类的 InvokeScript 方法有疑问 我的 XAML 中有这个 当我运行这段代码时 myWebBrowser Loaded object sende
  • 从 ServletContext 资源解析 XML 文档 [/WEB-INF/applicationContext.xml];

    我在控制台中遇到一些错误 我将在下面发布 我正在使用 eclipse 并清理了项目 刷新了目标 清理了 tomcat 服务器 因此追逐或任何此类性质的事情都不是问题 控制台错误 SEVERE Context initialization f
  • 从 C# 获取 Windows 应用程序的位置

    我需要一些帮助来尝试获取记事本窗口的位置 我很确定我需要使用GetWindowRect功能如下 但我不知道如何使用它 我已将以下内容放入 win 表单项目中 但是myRect X myRect Y等里面没有任何东西 我认为他们至少应该有我正
  • webrtc:mediaDevices.enumerateDevices() 返回空 deviceId

    我目前正在探索 webRTC 我想做的是获取所有媒体设备信息以及deviceId using navigator mediaDevices enumerateDevices 然后根据其种类属性将其分离出来 并允许用户选择针对特定种类使用哪种
  • Python -- 正则表达式 -- 如何在两组字符串之间查找字符串

    考虑以下 div a href foo1 com Foo1 a div a href Home a div div a href extract Extract a div div a href sitemap Sitemap a div
  • Array.prototype.sort(compareFn) 在浏览器中的工作方式不同?

    我一直在测试作为回调给出的比较函数Array prototype sort compareFn 当compareFn返回value 0时 但我在Chrome中得到了意外的行为 Chrome 1 2 3 4 5 6 7 8 9 10 sort
  • 如何将后备样式属性应用到 React JS 组件?

    我想将后备样式属性应用于组件 例如 var inlineStyle display webkit box display webkit flex display moz box display moz flex display ms fle
  • 如何使用jenkins删除目录中的文件

    在我的系统中 我每天都会在 1 个文件夹中下载新版本 然后将其用于进一步的原因 但在运行 jenkins 作业后 我想删除该文件夹 不是工作区 中的文件 这将从同一目录中删除特定文件夹 这将帮助我每次根据同一台机器上运行的不同詹金斯作业下载
  • Swift:格式化字符串宽度

    我想做的事情在 C C Java 和许多其他语言中非常简单 我想要做的就是能够指定字符串的宽度 类似于 printf 15s var 这将创建 15 个字符的字段宽度 我已经做了很多谷歌搜索 我尝试过使用COpaquepointer也Str
  • 如何在 HTTP 请求中使用 urllib2 发送自定义标头?

    我想在使用 urllib2 urlopen 时在请求中发送自定义 Accept 标头 我怎么做 不完全的 创建一个Request对象实际上并不发送请求 并且 Request 对象没有Read 方法 还 read 是小写 您所需要做的就是通过
  • Strace 检测到对 brk 的调用,但 GDB 不会在断点处停止

    我已经尝试调试内存泄漏相当长一段时间了 我的主要问题是无法使用像 Valgrind 之类的正确工具 所以我选择了普通的 GDB strace 我的程序是一个循环 在每次迭代中 它都会创建一些对象 然后调用它们的析构函数 正如它所解释的her