Next:
Up:
Previous:
4.2.1 概観
シンボリックデバッガの実現にあたり,
求められる性質として,以下の2点を重要視している.
- ABCL/f の持つ移植性を重視した設計を行う
- ABCL/f の細粒度マルチスレッディング機構であるStackThreadsに
対応した環境を提供する.
特に移植性を重視するため,
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