(toppers-users 194) Re: マシンコード
Takayuki WAKABAYASHI
takayuki @ ertl.ics.tut.ac.jp
2001年 6月 5日 (火) 12:26:57 JST
豊橋技術科学大学の若林です.
Takeda Masaru さんは書きました:
> どんな風にソースコード→アセンブラ→マシンコードと
> 変換されているのか分かりません。
> なにか変換がわかる方法があれば教えてください。
最終的なアセンブリコードを見たいのであれば,
binutilsについてくるobjdumpコマンドを使うと見ることができます.
objdump --disassemble-all $(ロードモジュール)
変換最中のアセンブリコードを見たいのであれば,
gccに-Sオプションをつけることで
変換したアセンブリコードを出力させることができます.
もっと違う粒度で見たいのであれば,
gccに-dオプションをつけることで実現できます.
詳細はinfo(Invoking GCC::Debugging Optionsの'-dLETTERS'部)を
参照してください.
シンボルの値とアセンブリコードだけあればよいのであれば,
こういう風にMakefileを修正すると便利です.
私もシンボリックデバッガが使えないときに良くやります.
jsp/$(TARGET)/Makefile:190行付近 $(JSPOBJ)のルール
#下の2行を挿入する (SHでの例)
---8<---
$(JSPOBJ): Makefile Makefile.depend kernel_cfg.c offset.h $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o jsp $(OBJS) $(LIBS)
sh-hitachi-elf-objdump --disassemble-all $(JSPOBJ) > asm
sh-hitachi-elf-objdump --syms $(JSPOBJ) | sort > syms
---8<---
以上 ご参考まで.
//-------------------------------------------------
//Takayuki WAKABAYASHI (わかばやし たかゆき)
// mailto: takayuki @ ertl.ics.tut.ac.jp
//-------------------------------------------------
//豊橋技術科学大学 工学研究科 情報工学専攻
// 組込みリアルタイムシステム研究室
// Embedded and realtime system laboratory
// Dept. of information and computer science
// Toyohashi univ. of technology