itmediaの「main()関数の前には何があるのか」の連載を読んでわからなかったことや、調べたことをメモする
(作者サポートページ)
第三回は"試行錯誤のデバッグで探る、printf()内のポインタ経由での関数呼び出しが行き着く先とは"
break mainでrunしたあと、breakしてるのが↓の行なのよくわからんな
breakが貼られる箇所ってどういう規則になってるんだろう?
https://image.itmedia.co.jp/ait/articles/1703/01/r20_Hello03-01.PNG
gdbについて調べると使い方ばかり出てきて、原理がわからんな
break function だとfunctionのエントリーポイントでブレイクするらしい
ということは、スタックポインタやベースポインタ更新後が関数のエントリーポイントってこと?kprobeやuprobeも同じタイミングなのかな?
break function
function のエントリにブレークポイントを設定します。
https://image.itmedia.co.jp/l/im/ait/articles/1703/01/l_r20_Hello03-08.PNG
アセンブラで深いとこ潜っていくのは、break貼って勧めて関数呼び出し見つけてstepiで呼び出し先の関数に飛んではbreak貼ってを繰り返していくみたい。