空程序segfaulting

Kar*_*elė 17 debugging haskell segmentation-fault

我有一个空的程序(module Main where main = return ()),如果我在build-depends中包含一个特定的库,在cabal文件中会出现段错误.

这个库是我自己的,而segfault是bumblebee驱动程序与opengl和haskell的某种交互(只有当我optirun和其他程序一起使用时才会出现段错误,在堆栈跟踪中我只能看到libGL.so),但这不是'我的问题.

我的问题是,一个没有代码段错误的程序怎么样?更准确地说,我的库的哪些代码只是因为它在构建中依赖而运行?我该如何调试这个废话?

编辑.如果我更改了列出额外库的顺序,那么在编译库时,问题就会消失.具体来说,我在sfml-*之前移动了GL,GLEW.但问题仍然存在.我怎么能发现这个,除了漫无目的地摆弄构建文件?

小智 1

在 Bland GCC 编译中,我注意到 Linux 下超过 75% 的段错误是定义返回类型的方法,但代码流中没有这种方法。

我想说的是,当让某些东西充满不确定性时,要真正意识到回报并给出未使用的标称值……不是“空值”或花哨的东西,只是在游戏中获得的东西。

如果随着您的进展,这不酷,您可以删除或修改它们。

您的消息中没有足够的详细信息来理解您的上下文,但如果您可以运行 pdb,GCC 会使用调试信息进行编译,这会提供巨大的帮助。当它崩溃后,有像frame和bt(backtrace)这样的命令来帮助你。