Отладка загрузки ядра Qemu arm Linux, исходный код отсутствует

. Я использую Qemu, чтобы изучить разработку/взлом ядра Linux и хотел отладить процесс загрузки Linux (2.6.34.3 ). Я скомпилировал для универсальной платформы ARM и использую кросс-компилятор Codesourcery arm -none -eabi. Я использую Eclipse в качестве среды для сборки и отладки с помощью gdbserver.

Итак, мне удалось успешно собрать и запустить ядро ​​в qemu, но проблема в том, что я не вижу исходного кода в отладчике в процессе загрузки(по адресу 0 )я вижу только код дизассемблирования. Однако, когда он переключается на виртуальную память по адресу init/main.c (по адресу 0xC0000000 ), появляется исходный код, и я могу видеть исходный код и переходить от одного кода к другому. Это почему? Я хочу этого с самого начала.

У кого-нибудь есть советы по отладке процесса загрузки Linux? Все гайды в гугле показывают как отлаживать ядро, но все они показывают с самого начала _ядро ​​()( находится в init/main.c)а не с начала процесса загрузки (в arch/arm/boot/compressed/head.S). У кого есть опыт помогите пожалуйста, спасибо!

Looked into the System.map in the root folder and there is only symbols for stuff from c0004000 (where the virtual address start). I load vmlinux into gdbserver to get debug information, Maybe thats why theres no source?

5
задан MrGigu 11 July 2012 в 10:23
поделиться