カーネルの sched.c の関数でPC
1 とLR
2の両方が指しているという問題に直面しています。cpuacct_charge()
これが発生する可能性のあるシナリオはありますか? 私の分析では、cpuacct_charge()
関数に再帰がないことが示されています。コードを提供できません。ただし、これが発生した場合のシナリオは大きな助けになります。
明確化のために : PC と LR の値は、関数内の異なる場所を指しています。
void cpuacct_charge(struct task_struct *tsk, u64 cputime)
注 1: PC
- プログラム カウンタ
注 2: LR
- リンク レジスタ