Подтвердить что ты не робот

Пустая сегрегация программы

У меня есть пустая программа (module Main where main = return ()), которая segfaults, если я включаю определенную библиотеку в зависимости от сборки в файле cabal.

Библиотека моя, и segfault - это какое-то взаимодействие драйверов шмеля с opengl и haskell (segfault возникает только в том случае, если я optirun, который работает с другими программами, в трассировке стека я вижу только libGL.so), но это не мой вопрос.

Мой вопрос: как программа без кода segfault? Точнее, какой код моей библиотеки работает только потому, что он зависит от сборки? Как мне отладить эту бессмыслицу?

Изменить. Если я изменил порядок, в котором перечислены лишние библиотеки, при компиляции моей библиотеки проблема исчезнет. В частности, я переместил GL, GLEW перед sfml- *. Однако вопрос остается. Как я мог обнаружить эту, безразличную работу с файлами сборки?

4b9b3361

Ответ 1

В компиляторах Bland GCC я заметил, что > 75% ошибок сегмента в Linux - это методы, которые определяют тип возврата и не имеют одного в потоке кода.

Я бы сказал, создавая что-то хоп с неопределенностью, действительно осознавая отдачу и давая тогда неиспользованные номинальные значения... не "нули" или причудливые вещисы, просто что-то, чтобы попасть в игру.

Если по мере того как вы прогрессируете, это uncool вы можете удалить или пересмотреть их.

В вашем сообщении недостаточно подробностей, чтобы понять ваш контекст, но GCC компилирует с помощью отладочной информации, которая добавила большую помощь, если вы можете запустить pdb. после того, как он сработает там, есть команды, такие как frame и bt (backtrace), чтобы помочь вам.