(toppers-users 2042) Re: cxx_sample1でBus erroeが出てしまいます
高木信尚
takagi-n @ biggie.jp
2005年 7月 5日 (火) 12:23:57 JST
新井田様
現時点では当て推量でしかないのですが、気になった点がいくつかあります。
> C++で開発を行いたいため、サンプルのcxx_sample1をコンパイルして動かしてみた
> のですが、gdbで以下のようになり、すぐに止まってしまいます。
止まってしまうのはバナー出力の前でしょうか?後でしょうか?
タスク起動の前後で、考えられる原因が変わってきます。
> (gdb) load
> Loading section .text, size 0xdc80 lma 0xc004000 Loading
> section .data, size 0x7d8 lma 0xc100000 Loading section
> .init, size 0x36 lma 0x0 Loading section .fini, size 0x2a lma
> 0xc011c80 Loading section .rodata, size 0xf9a lma 0xc011cac
.initセクションが0x0番地になっているようです。
.textの前後になるようにリンカスクリプトを調整してください。
ただ、今回の問題と直接関係があるかどうかは何ともいえません。
> Program received signal SIGBUS, Bus error.
> _malloc_r (reent_ptr=0x80080, bytes=59)
reent_ptrの値を見ると、.bssセクションが変なところに割り付けられているような気がします。
_end (.bssの終端アドレス)とスタック領域の前後関係によっても動作不良の原因になります。
STACKTOPの定義と、.bssおよび_endの定義が分かれば、ある程度見えてくるかもしれません。
> 使用しているのは、
> 北斗電子製 SH7727 スターターキット
> それに添付された開発環境に SourceForge.jp からダウンロードした
> sh-hitachi-elf_toppers_cygwin-1.tar を入れています。
> GDB のバージョンは6.0です。
SourceForge.jpのものは、最終版だったかどうか記憶があいまいです。
多分大丈夫だと思いますが、あまり自信はありません。
なお、パッチ適用済みのバイナリは、近いうちに何らかの形で提供できるように
したいと考えています。
--------------
高木信尚