могу ли я написать свое собственное ядро, которое будет читаться GDB?

можно ли писать файлы ядра вручную? давайте предположим, что у меня есть двоичный дамп памяти стека, кучи, кода и всех регистров процессора.

возможно ли создать файл ядра, который выглядел бы для GDB так, как если бы реальный процесс потерпел крах и сгенерировал этот файл ядра?

Основное использование для этого заключается в том, что я запускаю виртуальную машину на коде сборки. Предположим, что архитектура PPC. когда я сталкиваюсь с проблемой, я хочу иметь возможность написать основной файл, который может быть прочитан GDB в Linux, чтобы помочь отладить проблему.

Я не уверен, в чем разница между основным файлом формата ELF и другими форматами. но я пытаюсь выяснить, возможно ли написать модуль, который получает сегмент данных, сегмент кода, сегмент стека и регистры и создает читаемый основной файл для GDB, и если да, то насколько это сложно.

Спасибо, Итай.


person Itay Marom    schedule 29.11.2013    source источник
comment
Краткий ответ: конечно, вы могли бы. Поскольку файл — это не что иное, как 1 и 0, вы наверняка можете сгенерировать что угодно самостоятельно, так как информация будет просто интерпретироваться. Вам просто нужно знать, что должны представлять данные в таком файле, чтобы подделать их.   -  person dhein    schedule 29.11.2013
comment
Но вопрос в том, достаточно ли этой информации? возможно, нужно больше, что недоступно за пределами этих инструментов? а как насчет типа формата? это хорошо определено и известно?   -  person Itay Marom    schedule 29.11.2013
comment
Мне так любопытно, какого черта вам нужно делать с этим :-)   -  person peterh    schedule 29.11.2013
comment
Было бы точнее сказать, что это не невозможно.   -  person ams    schedule 29.11.2013
comment
взгляните на исходный код gcore   -  person steve    schedule 30.11.2013


Ответы (1)


возможно ли создать файл ядра, который выглядел бы для GDB так, как если бы реальный процесс потерпел крах и сгенерировал этот файл ядра?

Это точно. Формат ядра несколько сложен и зависит от системы (и вы не сказали, для какой системы вы хотите решение).

Этот ответ дает возможные решения ELF.

Если вы работаете в системе, отличной от ELF, вам придется сообщить нам, в какой именно.

person Employed Russian    schedule 30.11.2013