Как распечатать регистры в ядре Linux? - PullRequest
1 голос
/ 27 сентября 2011

Я хочу распечатать значения пары регистров из кода ядра Linux, работающего на ARM.В частности, у меня есть следующая сборка в Linux -

e3c52007        bic     r2, r5, #7      ; 0x7
e1520003        cmp     r2, r3
0a000003        beq     c011fa60 <smem_find+0x40>

Как вывести значения r2, r3 и r5 в kmsg?Я не хочу использовать имена переменных и хочу получить значения из регистров.

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Я не так хорошо знаком с разработкой ядра и простыми способами отладки, но я думаю, это поможет мне.

size_t r2, r3, r5;

asm ("str r2, %[r2]\n"
     "str r3, %[r3]\n"
     "str r5, %[r5]\n"
 : [r2]"=m" (r2), [r3]"=m" (r3), [r5]"=m" (r5));
 printk("r2=%u r3=%u r4=%u\n", r2, r3, r5);

Редактировать: теперь со сборкой ARM вместо x86: p

0 голосов
/ 28 июня 2017

Вы можете позвонить show_regs(struct pt_regs * regs).Эта функция будет отображать все регистры в структуре pt_regs.

...