Next: Up: Previous:

4.2.1 概観

シンボリックデバッガの実現にあたり, 求められる性質として,以下の2点を重要視している.

特に移植性を重視するため, 4.3節で述べる理由により, 既存の C/C++ 用 デバッガである gdb (GNU debugger)[ 3] を改変しない形でシステムの実現を目指している.

このため,デバッガの構成としては,以下の様な単純な物となっている. ユーザは単一/複数プロセッサ上で実行される ABCL/f プログラムに対し, 各希望プロセッサ上で gdb を立ち上げることで, そのプロセッサ上の各スレッドが, スケジューリングされながら実行されている全様子を 眺める事が出来る. ユーザは, gdb を通して, スレッドの実行の様子をプログラム文面に沿って トレースする事が出来る.

マルチスレッドへの対応については, 現在のスケジューリングにおいては, 計算が途中でブロックしない限りにおいて, C/C++ プログラムのトレースとほぼ同じように実行のトレースを行う事が出来, 逐次プログラムからのユーザにとっては自然なものとなっている. 実行がブロックした場合や,ノード間にまたがる計算のトレースなどについて, 詳しくは4.2.2節でその扱い方を説明する.

ユーザインターフェイスとしては, (1) gdbをコマンドラインから用いるもの(図4.1) と (2) Emacs インターフェイス を通してつかうもの (図4.2)が準備されており, 環境に応じたものを使う事ができる. 各インターフェイス上での ABCL/f に即したコマンドの使い方については, 付録の中で詳しく述べる.


lute% gdb objc.sun
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.14 (sparc-sun-sunos4.1.3C_J), 
Copyright 1995 Free Software Foundation, Inc...
(gdb) break abclf_main
Breakpoint 1 at 0x8358: file objc.ffd, line 150.
(gdb) run 3
Starting program: /tmp_mnt/home/camille2/kamada/debugger/impl/ex/obj/objc.sun 3

Breakpoint 1, abclf_main__FPt7channel1ZiPt4list1ZP12abclf_string (r_222=0x1, 
    args=0x96fc0) at objc.ffd:150
150       (let ((arg-n (length args)))
(gdb) 


図4.1 コマンドライン 上で gdb を用いた例


図4.2 Emacs 上から gdb を用いた例



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