Boost Filesystem:recursive_directory_iterator 构造函数导致 SIGTRAPS 和调试问题

2024-02-15

我想使用 boost::filesystem 提供的 recursive_directory_iterator 来删除目录。但在构建时调试器会停止并显示消息收到信号:Sigtrap。我可以选择继续(必须执行多次,因为捕获了多个 Sigtrap)并且程序将按预期工作,但使用自定义断点进行调试不再起作用。 “fs::path dir”指向的路径是有效的,我也尝试使用类似的字符串fs::... dirIter( "D:/validPath" ),但问题依然存在。

#include <boost/filesystem.hpp> 
namespace boost::filesystem = fs;
void recursiveDeleteDir( fs::path dir ) 
 fs::recursive_directory_iterator endIter; 
 //At this point debugging is stopped with the message
 //Signal Received: SIGTRAP
 fs::recursive_directory_iterator dirIter( dir );      
 for(;dirIter != endIter ; ++dirIter) 
 { 
  // do something 
 } 
}

当我试图找出 Sigtrap 的确切来源时,我迷失在 boost::filesystem 实现细节的深处。

有谁知道为什么这些 Sigtraps 存在或者它们是如何激活的 更重要的是: 有没有办法摆脱它们

(当然,它们只发生在调试模式下,程序在发布模式下工作正常,但我必须能够以某种方式继续调试)

感谢您的帮助!


编辑: 我正在使用 NetBeans IDE,但无法访问完整的调用堆栈。但这就是收到 sigtrap 信号时它包含的内容:

01: ntdll!RtlpNtMakeTemporaryKey()
02: ntdll!RtlpNtMakeTemporaryKey()
03: ntdll!RtlpNtMakeTemporaryKey()
04: ntdll!LdrFindEntryForAddress()
05:地址:[@0x003e0000]
06:地址:[@0x50000061]
07: std::basic_string,std::allocator>::_Rep::_S_empty_rep_storage()
08:地址:[@0x003e0000]
09: std::basic_string,std::allocator>::_Rep::_S_empty_rep_storage()
10:地址:[@0x40000060]
11:地址:[@0x0022f968]
12:地址:[@0x00000000]


经过大量搜索和询问,我解决了这个问题。 这个问题(或者更确切地说是答案)给了我一个提示:
获得随机 SIGTRAP 信号(在 MinGW-gdb 中)是否是内存损坏的标志? https://stackoverflow.com/questions/2307621/does-getting-random-sigtrap-signals-in-mingw-gdb-is-a-sign-of-memory-corruption

这似乎是尝试访问损坏的内存的问题,这是由于使用未初始化的动态库引起的。

通过使用 boost::filesystem 和 boost::system 库的静态(调试)版本,并激活链接器的 -static 开关,就可以解决这个问题。

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

Boost Filesystem:recursive_directory_iterator 构造函数导致 SIGTRAPS 和调试问题 的相关文章

  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • 使用管道在父级和子级之间传递整数值

    我对如何正确使用 pipeline 在两个进程之间传递整数值有点困惑 在我的程序中 我首先创建一个管道 然后分叉它 我假设我有 两个 管道 据我了解 这是我的任务 我的父母通过 for 循环检查某个操作的整数值 i 增加计数变量 并将值保存
  • SOAP Web 服务:多台服务器,一个接口

    我有一个场景 需要任意数量的服务器来提供相同的 SOAP Web 服务 我想生成一组代理类 并能够为它们提供一个位置 以便在运行时将它们指向不同的服务器 不幸的是 看起来好像wsdl port节点 子节点wsdl service 要求对特定
  • 从结构调用 C++ 成员函数指针

    我找到了有关调用 C 成员函数指针和调用结构中的指针的信息 但我需要调用结构内部存在的成员函数指针 但我无法获得正确的语法 我在类 MyClass 的方法中有以下代码片段 void MyClass run struct int MyClas
  • 获取列表框中视图中的项目

    我有一个 ListBox 其属性 VirtualizingStackPanel VirtualizationMode 设置为 回收 我正在绑定一个自定义集合 实现IList and IList
  • 如何检查 Flutter 应用程序是否正在调试中运行?

    我正在寻找一种在应用程序处于调试模式时在 Flutter 中执行代码的方法 在 Flutter 中这可能吗 我似乎无法在文档中的任何地方找到它 像这样的东西 If app inDebugMode print Print only in de
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • C# 结构默认值

    我有一个方法 它接受一个包含许多具有基本数据类型的字段的结构 我想传递大部分默认值 但需要进行一些调整 但我了解结构声明中的基本字段不能包含默认值声明 例如struct S int a 42 现在是这样的 OptionsStruct opt
  • 维护 VS Test Project 中单元测试方法之间的上下文

    我想按顺序运行以下单元测试 使用随机数字的名称 密码等创建新客户 检索刚刚创建的客户并断言其属性包含相同的随机数 对同一用户调用 ForgotPassword 函数 并使用相同的随机数作为用户名 清楚地看到 我需要生成一次随机数 并在 3
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • 自己绘制的WPF自定义滑块

    这是我关于堆栈溢出的第一个问题 所以不要踢它 我在尝试创建 Mac 风格的滑块控件时遇到问题 我已经发现这个解决方案 http www codeproject com KB miscctrl MAC Slider aspx我已经在我的解决方
  • 从图像创建半透明光标

    是否可以从图像创建光标并使其半透明 我目前正在拍摄自定义图像并覆盖鼠标光标图像 如果我可以将其设为半透明 那就太好了 但不是必需的 销售人员喜欢闪亮的 目前正在做这样的事情 Image cursorImage customImage Get
  • 如何从 Powerpoint 2010 导出电影?

    如何使用 MS Office PIA 主互操作程序集 或其他方式以编程方式将嵌入视频从 powerpoint 2010 导出到外部文件 在演示文稿中嵌入视频是 Powerpoint 2010 中的一项新功能 我找不到解决方案 PPTX 文件
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • g++ / gcc 是否支持 C++20 新的atomic_flag 功能?

    根据参考参数 https en cppreference com w cpp atomic atomic flag c 20 有丰富的 对我来说有用的 支持atomic flag运营 然而 目前尚不清楚 gcc 是否支持这些功能 它们在任何
  • 如何配置 qt Creator 以显示 C++ 代码而不是反汇编程序?

    昨天我做了很多事情 比如更新 GCC Clang 和重新安装 Qt Creator 今天 在逐步调试我的代码时 调试器显示的是反汇编代码 而不是我编写的 C 代码 紧迫F10 or F11 调试器正在进入汇编代码而不是 cpp nor h我
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen

随机推荐

  • C# - 读取字节,它们是什么以及发生了什么。我期望二进制值,而不是十进制数

    我已经成为一名程序员几年了 但我从来没有had了解涉及字节的低级操作 然而它让我感兴趣 并且我想了解更多有关使用字节的信息 在下面的代码中 我正在读取一个仅包含 嗨 那里 一词的文本文件 FileStream fileStream new
  • ASP .net 当前物理位置

    您好 我正在开发 ASP net Web 应用程序 我需要找到网站的当前位置 物理位置 或包含程序集的 bin 目录 我尝试使用 Directory GetCurrentDirectory 并返回 ASP net 临时目录 我真的不喜欢在我
  • 将 JSON 数据发布到 .asmx Web 服务

    我正在尝试将一些简单的参数发布到 asmx Web 服务 我收到以下错误 请求格式无效 application json 字符集 utf 8 我真正需要的是能够传递一个复杂的对象 但我无法通过使用 json 内容类型发出 POST 请求 这
  • UIDocumentInteractionController 日历访问

    我有一个 ics 日历 文件 我用UIDocumentInteractionController using presentOptionsMenuFromRect 运行时 打开方式 菜单看起来像this https i stack imgu
  • twig 扩展中的 Symfony 依赖注入

    好的 我试图创建依赖于其他服务的树枝扩展 安全 上下文 并遇到了一些麻烦 所以 这是我的服务声明 acme twig user extension class Acme BaseBundle Twig UserExtension argum
  • 在 Groovy 类中导入 groovyx.net.http.RESTClient

    我尝试在我的 groovy 类中导入 groovyx net http RESTClient 我的常规课程是这样的 void getREST def r new RESTClient url def response r get path
  • 限制文件下载

    我目前正在为客户创建一个网站 该网站基本上涉及销售各种文件 这显然是一件非常常见的事情 这让我觉得自己很愚蠢 因为我没有想到一种方法来做到这一点 购买完成后 客户应该会被带到包含下载链接的页面 并收到包含下载链接的电子邮件和包含将为他们创建
  • 无法绑定属性

    我已经将Spring Boot从版本1 5 6更新到2 0 0 并且开始出现很多问题 一是题目中给出的问题 我有一个带有属性的类 Data ConfigurationProperties eclipseLink public class E
  • jquery scrollTop animate 完成后滚动触发

    为什么另一个滚动事件被调用after a scrollTop动画激发其complete打回来 单击处理程序 var lock false id click function event var pos if lock return lock
  • Rails 复选框 AJAX 调用,不想渲染任何内容

    我有一个小演示设置 其中单击复选框可通过 AJAX 切换属性 它工作正常 但 Rails 确实想要渲染一些东西 所以我基本上诉诸于在我的视图中创建一个空白的toggle js erb 文件 有问题的控制器操作 def toggle task
  • 为什么“cabal init”会破坏“ghc-mod 检查”?

    ghc mod 在只有一个 haskell 源文件的目录中工作 但如果我在该目录 tmp test 中运行 cabal init 则会收到以下错误 p1 dave peach tmp test ghc ghc mod check Main
  • 如何在没有循环的情况下更改数组内的值 Swift

    我有一个布尔数组 例如 var myBool Bool true true false true false 我想将所有元素从索引 1 更改为索引 3 像这样的东西 myBool 1 3 true true true true true f
  • Slimscroll 栏在移动浏览器中非常慢

    我正在使用 slimscrollbar 插件 它在 Web 浏览器中运行良好 但在移动浏览器中运行速度非常慢 有什么解决方案可以提高移动设备的速度吗 如果您使用过此处的 slimscrollbar 插件 http rocha la jQue
  • OpenJDK 客户端 VM - 无法分配内存

    我正在集群上运行 Hadoop MapReduce 作业 我收到这个错误 OpenJDK 客户端 VM 警告 信息 os commit memory 0x79f20000 104861696 0 失败 错误 无法分配内存 errno 12
  • JS $ 是什么意思?

    我不明白 Javascript 的想法 目的 用途 如 函数 id 返回 document getElementById id 有人可以解释一下或指出我的解释吗 Thanks Pete 当你看到 JavaScript 代码涉及大量 foo
  • 如何在 driver.Close 后从 ChromeDriver 重新打开浏览器?

    我目前已经初始化了 chromedriver 这包含 控制台 和实际的 chrome 浏览器 窗口 我想调用 chromedriver Close 方法仅关闭 浏览器 窗口 然后在应用程序运行时重新打开它 我这样做是因为我的控制台已经处于隐
  • 当我调用WSASend()时,所有数据都会被发送吗?

    使用 IOCP 时 如果我调用WSASend 假设有 2 KB 的数据 当我收到完成通知时 此完成通知是否表明整个 2 KB 已发送 或者可能有一些字节未发送 在正常情况下 是的 只要套接字使用重叠 I O 您的完成就会收到整个 2 KB
  • htmx: hx-target: 交换 html 与整页重新加载

    我有一个包含多个表单的页面 如果用户提交表单 则仅应提交当前表单 而不是页面的其他表单 在服务器上 表单得到验证 情况 1 如果验证失败 则服务器将 html 发送到客户端 并且应交换特定表单 并将新表单添加到 DOM 中 此新表单包含一条
  • PHP file_get_contents / CURL 不返回整页

    我尝试使用 CURL 或 file get contents 提取第 3 方文件内容时遇到一些奇怪的行为 页面的 pasrt 已读取 但它停止在随机位置 但没有错误 超时等 如果我给出完整的例子 可能最容易看出 使用以下非常基本的脚本来读取
  • Boost Filesystem:recursive_directory_iterator 构造函数导致 SIGTRAPS 和调试问题

    我想使用 boost filesystem 提供的 recursive directory iterator 来删除目录 但在构建时调试器会停止并显示消息收到信号 Sigtrap 我可以选择继续 必须执行多次 因为捕获了多个 Sigtrap