Re[2]: gnu ld, binutils についての質問です。
watatsu です。
> > int bogus_func(int* bar)
> この段階でbarがスタックセグメントを指しているってことがコン
> パイラに伝わらないとデータセグメントが使われてしまいますよね。
> 教える方法があるかどうかは知りません。
分かりました。
# なるほど。スタックに詰まれたかデータセグメント上にあるか
# 分からない…
> > {
> > int foo;
> > bogus_func(&foo);
> こっちで「エラー」を出すのが正しいとは思うけど、
ずっとはまってました。
コンパイルが通ってぬか喜び。
> でも、ポインタをデータとスタックで、やりとりするつもりなら、
> スタックセグメントとデータセグメントをわけるのは、止めた方が
> 良いと思うよ。
そうですね。無難です。
スタックセグメントの取り扱いがデータセグメントとほぼ同じという、謎の勘違いしてました。
どうやってスタックから如何にデータを保護するのか、について頭をひねっていました。(汗)
ずっと「リンカスクリプトが怪しい」などと勝手に決め付けてまし
た。(汗汗)
助かりました。
ありがとうございました。
; cltack@xug.biglobe.ne.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735