Next: Up: Previous:

4.6.1 シンボル名(Emacs版)

4.4.1節で述べたように, 現在,ABCL/f と gdb ではシンボル名として扱える物に差が あるため,実行ファイル上のシンボル名と本来のABCL/f 内でのシンボル名は 異なる. 例えば,``abclf-main''なる関数名は,``abclf_main'' のように変換されることとなる. このため,残念ながら コマンドライン からgdbを用いる場合, ユーザはこの差を意識する必要がある.

一方,Emacs から gdb を用いる場合, gdbへの入力に対して Emacs lisp プログラム が変数名相当部を ABCL/f からC/C++ 上のものに変換することで対応している( 図4.6). 対象となるのは,ユーザからのcommand入力ならびに gdb からの変数名出力部である. gdbからの出力に対するパーズについては, annotate 付加モードでgdb を実行する事で対応している.


(gdb) break abclf-main
Breakpoint 1 at 0x83d0: file objc.lsp: line 158: column 15.
(gdb) r 3
Starting program: /home/users/kamada/debugger/impl/ex/obj/objc.sun 3

Breakpoint 1, abclf-main (args=0x8afc0) at objc.lsp:line158:column15
(gdb)


図4.6 Emacs インターフェイス 上での シンボル表示例

Mitsubishi Research Institute,Inc.
Mon Feb 24 19:27:22 JST 1997