微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让 Conan/CMake 给我调试信息来查找段错误

如何解决如何让 Conan/CMake 给我调试信息来查找段错误

我需要调试段错误。我正在使用柯南 (conan build ..) 进行编译。我将此添加到 CMakeLists.txt

set(CMAKE_BUILD_TYPE "Debug")

但是,当我运行二进制文件并得到段错误时,我只是得到

Segmentation fault
ERROR: conanfile.py: Error in build() method,line 15
        self.run("bin/main")
        ConanException: Error 139 while executing bin/main

我也在构建步骤中的 conanfile.py 中尝试了这个

cmake.deFinitions["CMAKE_BUILD_TYPE"] = "Debug"

我应该怎么做才能获得有关为什么我会遇到段错误的信息?

解决方法

您不能将 conan 配置为“获取调试信息”。

对于临时调试,我建议在调试器中手动运行程序。

但是,您可以做的是配置您的操作系统以在出现段错误时生成程序的核心转储。这样你就可以让 conan 在没有调试器的情况下执行程序,然后使用调试器检查内存转储。

也就是说,通过内存转储可以看到程序的状态,不一定能说明一切,而且逐步调试可能会显示太多信息,并且很难找到错误。一个很好的工具是构建具有未定义行为的程序并解决清理程序,并希望他们能发现错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。