私は現在 Linux ARM カーネルをデバッグしていますが、CPU モード (usr、svc、abt など) が変更されたときに gdb が壊れる可能性があるかどうか常に疑問に思っていました。現在、どのモードにいるのかわからない場合、通常は psr レジスタを複数回確認する必要がありますが、モード変更でブレークするなど、より効果的な方法があるのではないでしょうか?
例外ベクトルにブレークポイントを設定できることはわかっていますが、それは特権モードへのモード変更のみを検出し、その逆は検出しないことを意味します。psr が 0x10(usr モード) に変わるかどうかを確認するコマンドがあるのではないでしょうか?
ありがとう