У меня есть простая пакетная программа, которая работает на 2 CentOS 6.6 машинах (32-разрядная машина и 64-разрядная машина), но не на третьей машине CentOS 6.6 (64-битная машина). Итак, как может тот же самый исполняемый файл работать на 2 машинах, но не работать на третьей машине?weird «*** обнаружено разбиение стека ***» выпуск
Обратите внимание, что я не спрашиваю, как исправить эту проблему, я спрашиваю, как один и тот же точный исполняемый файл может вести себя по-разному на трех разных машинах. У меня на самом деле есть 3 или четыре разных C-программы, которые соответствуют этому поведению, но я выбираю простейший для устранения этой проблемы. Моя теория заключается в том, что что-то настраивается по-разному на уровне ОС между тремя машинами (возможно, я забыл установить какую-либо библиотеку или установить некоторую переменную окружения). Я просто нуждаюсь в помощи, сужающейся, где искать, какие вещи типа ОС смотреть.
Это, вероятно, должно идти на serverfault, так как это вопрос, связанный с сервером, но я боялся, что люди там будут видеть мою ссылку на программы на C и попросят меня приехать сюда, поэтому я собираюсь начать здесь.
Обратите внимание, что valgrind не помогает. Я бы просто исправить проблему в моем коде, если это так, но не выявило проблем с памятью. Когда я говорю, что это просто, я имею в виду. Он просто считывает некоторые записи из базы данных, массирует их, а затем печатает их на экране.
Спасибо за любую помощь, которую вы можете предоставить.
Да, я видел очень похожие ответы по всему Google. Мой вопрос в том, почему одна и та же программа отлично работает на одном компьютере, но не на другом, когда версии ОС настолько похожи. Существует разница в уровне ОС. Это проблема. Я просто не знаю, как его найти. – user3329922
Я в основном отвечал на последнюю часть: «Я бы просто исправить проблему в моем коде, если бы это было так, но в ней не было проблем с памятью». Использование этого метода поможет найти проблему, позволяющую вам ее исправить. – n1000