[H8-ML(1152)] Re: gdb$B$G$N%G%P%C%0(B
From: serow@xxxxxxxxxxxxxxxxxx (TANAKA Yoshitomo)
Date: 2001年07月11日(水)21時09分15秒
うちはgdb-5.0ですが、からさわさんと同じことが起きたのでちょっと
調べてみました。
ldscript(h8300h.x)の先頭には

/* The memory size is 256KB to coincide with the simulator.
   Don't change either without considering the other.  */

なんてことが書いてあり、gdbのソースを読んでみると、
h8300hの場合は (1<<18) つまりほんとに256Kbだけしか
simulateしてくれないようです。
このへんは gdb-5.0/sim/h8300/inst.h にハードコーディングされており
gdb-5.0/sim/h8300/compile.c で利用されていますが、
異なる値を渡せるようにはなっていません。

で、pushでもpopでも、それを行うとstack pointer(er7)は
((1<<18) - 1) == 0x3FFFF で AND されてしまいます。
そういうわけなので、この現象はsimulaterが確保するメモリを
制限したための仕様という感じです。

この制限から逃れるには、gdbのソースをちょと書き換えて再コンパイル
するしかなさそうですが、今時のPCなら(1<<24)にしても平気かも:-)。
-- 
----_--__---_-_-_-__--_-__-__---_-_----_--_-_---_---_----
_/     TANAKA Yoshitomo       _//
/  Suginami-ku Tokyo, Japan  _// serow@xxxxxxxxxxxxxxxxxx
スレッド概略
[1150(R)](起点)
 └[1151(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]