Как найти "index out of bound", если я не получаю ошибки сегментации
У меня есть программа, которая вызывает ошибку Seg в машине, которая недоступна для меня. Однако, когда я компилирую и запускаю его с тем же компилятором и теми же входными данными на моей машине, я ничего не получаю. Проблема, вероятно, заключается в том, что "индекс массива не привязан", что может привести к ошибке Seg в некоторых обстоятельствах, однако компилятор не показывает никакого предупреждения. Программа огромная и сложная. Поэтому я не могу найти проблему, просто проверив код.
Любые предложения о том, как получить Ошибка сегментации на моей машине тоже? Таким образом, я могу отладить код и найти проблему.
2 ответа:
Вы могли бы использовать
valgrind
если он работает на машине Linux. Чтобы использоватьvalgrind
, Просто введите на консоли:valgrind --leak-check=full --num-callers=20 --tool=memcheck ./program
И должен возвращать недопустимое чтение / запись размера X в соответствии с переменной и (если вы скомпилировали с отладочной информацией), он сообщит вам строку, в которой может быть проблема.
Кстати, вы можете установить
valgrind
в Ubuntu / Debian Linux (например) так же просто, как:sudo apt-get install valgrind