2014-07-20 3 views
1

Чтобы отладить проблему, я добавил некоторые отладки в код ядра, чтобы напечатать адрес, на котором была сделана блокировка, путем вызова __builtin_return_address (1).Как декодировать символ ядра Linux

Как найти символ (имя функции), соответствующий адресу, напечатанному?

ответ

0

использовать структуру как:

структура my_lock

{

spinlock_t mylock;

функция char [64];

};

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

+0

Это не сработает для меня. Я записываю компьютер в функцию блокировки. Вот почему я использую __builtin_return_address (1). В это время имя вызывающей функции недоступно. – Manohar

Смежные вопросы