Восстановление программы указывает из базового файла

Действительно ли возможно, при каких-либо обстоятельствах, восстановить состояние программы к тому, чем это было во время поколения базового файла?

Причина, которую я спрашиваю, состоит в том, что для использования в своих интересах способности gdb выполнить функции и т.д, у Вас должен быть рабочий экземпляр. Конечно, должно быть возможно произвести ложный процесс того же исполняемого файла с набором состояния, чтобы быть содержанием ядра?

Если не, что альтернативы там для вида ситуации, которая заставила меня хотеть сделать это во-первых? В этом случае след ядра, ведомого к библиотечной функции и я хотел копировать исходные данные в этот вызов функции, но одни из исходных данных, был сложный объект, который мог легко быть сериализирован к строке с вызовом функции в рабочем экземпляре, но не так в дампе ядра.

13
задан ks1322 10 March 2018 в 15:28
поделиться

2 ответа

Теоретически возможно делать именно то, что вы хотите, но (AFAICT) нет поддержки для этого в GDB (пока).

Лучше всего использовать GDB- 7.0 и использовать встроенный скрипт Python для повторной реализации функции сериализации.

7
ответ дан 2 December 2019 в 01:31
поделиться

Вот что уже делает файл ядра? Если вы загрузите gdb с исходным исполняемым файлом и файлом ядра

gdb myprogram.exe -c mycorefile

, он перейдет в точку, в которой произошел сбой. Вы можете использовать все обычные функции проверки, чтобы просмотреть переменные, увидеть трассировку стека и т. Д.

Или я неправильно понял ваш вопрос?

2
ответ дан 2 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: