[H8-ML(1144)] gdbでのデバッグ
From: karasawa <mak@xxxxxxxxxxxxxx>
Date: 2001年07月09日(月)13時54分58秒
はじめまして。からさわと申します。
AKI-H8/gcc-2.95.3/binutils-2.11.2/newlib-1.9.0/gdb-4.18/FreeBSD4.3にて先
週からいろいろ試しています。

まだRAMを増設していないので書き込み回数がもったいない(^^;ということでgdb
上でシミュレートしている状態です。
#リモートデバッグには至っていません。

ところがSIGILLで落ちる(gdbがではなく)ので調べてみると場所は見つけました。


ーーーーーーーーーーーーーーここからーーーーーーーーーーーー
> h8300-hms-gdb test.coff 
(gdb) set machine h8300h
(gdb) target sim
Connected to the simulator.
(gdb) load
Loading section .vectors, size 0xf4 vma 0x0
Loading section .text, size 0x1ad0 vma 0x200
Start address 0x200
Transfer rate: 56864 bits in <1 sec.
(gdb) b *0x27e
Breakpoint 1 at 0x27e: file crt1.c, line 2.
(gdb) run
Starting program: /home/export/gatesos/h8gcc/test.coff 

Breakpoint 1, 0x27e in __main () at crt1.c:2
2       {
(gdb) info registers 
〜〜〜省略〜〜〜
er6            0x0      0
sp             0xffef8  1048312
ccr            0x4      4       I-0 - H-0 - N-0 Z-1 V-0 C-0 u<= u>= == >= <= 
pc             0x27e    638
〜〜〜省略〜〜〜
(gdb) disassemble 
Dump of assembler code for function __main:
0x27e <__main>: 01 00 6d f6       mov.l er6,@-er7
0x282 <__main+4>:       0f f6             mov.l er7,er6
0x284 <__main+6>:       01 00 6d f4       mov.l er4,@-er7
〜〜〜省略〜〜〜
End of assembler dump.
(gdb) si
0x282   2       {
(gdb) info registers 
〜〜〜省略〜〜〜
er6            0x0      0
sp             0x3fef4  261876
ccr            0x4      4       I-0 - H-0 - N-0 Z-1 V-0 C-0 u<= u>= == >= <= 
pc             0x282    642
〜〜〜省略〜〜〜
ーーーーーーーーーーーーーーここまでーーーーーーーーーーーー

0x27e <__main>: 01 00 6d f6       mov.l er6,@-er7
これは多分PUSH ER6だと思うんですが、これを実行した前後でSPの値がぜんぜん
違っています。このため__mainのエンドで変なアドレスへリターンして落ちてい
ました。
#たぶん・・・(^_^;
#PCみたら0x3fef4の値(0x0)だったので

gdbの使い方が間違っているのでしょうか?
あるいはこれで正しい動作???

しばらく悩んでいたのですがよくわからなくなってきたので教えてください。

よろしくお願いいたします。

-- 
karasawa <mak@xxxxxxxxxxxxxx>

スレッド概略
[表示中](起点)


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


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