Есть много утилит для всяких исследований кода. Прочитал несколько мнений на счёт того что выявление бага кода лучше делать через такие инструменты. Зачем тогда нам нужен дамп памяти? Можно ли из этого дампа извлечь нечто такое, что нельзя получить используя разные утилиты?
Ответ А как можно еще проанализировать ошибку, которая произошла у пользователя ПО? Пользователь ПО обычно посылает разработчику core dump и с его помощью можно продиагностировать ошибку. Понадобится executable с включёнными символами и полностью идентичный с тем, для которого был создан core dump. Затем можно запустить дебаггер: gdb /path/to/executable /path/to/coredump Далее, командой bt full можно получить backtrace с момента возникновения ошибки. То есть, можно увидеть цепочку выполнения функций со значениями переданных им аргументов. Подробнее как двигаться от функции к функци и просматривать значения переменных смотрите: info gdb.