katsuhiro -> katsuhiro/refmon -> katsuhiro/refmon/stack_dump

スタックバックトレースについて

for ARM

参考
katsuhiro/refmon/stack_image:ARM のスタックイメージと、その実例について

参考になりそうな情報

ARM ではスタックの積み方が一定ではないため、強引な仮定をおかない限り、スタックトレースが取れない。

gdb のスタックトレースを行うコードが役に立つかもしれない。
gdb/arm-linux-tdep あたりがあやしい??

ARM のスタックフレーム

今までの知見から大別してみる。
fpを使うスタックフレーム

fpを使わないスタックフレーム

バックトレース処理の流れ

基本的には以下の処理の繰り返しである

プロローグコードで意味のありそうな命令

気になるポイント

バックトレース処理の詳細

具体的な処理内容について。
まずは fp を使うスタックフレームの場合。

次に fp を使わないスタックフレームの場合。

参考資料、レジスタの別名と汎用レジスタの関係

まあ GCC なんだからソース見てみろって話ですけどね。 gdb には bt があるのでそれを参考にしても良いかもしれないですね。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS