シェルスクリプトのデバッグツール、bashdb:Programing Bible(3/3 ページ)
シェルスクリプトで多くの処理をこなしている方は多いだろう。しかし、シェルスクリプトが思い通りに動かないときに、不正な値や到達しないコードパスを探するのは少々やっかいだ。そこで、bashdbを利用すれば、変数をウオッチしたりブレークポイントを設定したりして、速やかにデバッグできる。
次の例では、ウオッチポイントを使ってresult変数がいつどこで変更されるかを調べている。最初にnextコマンドを実行しているが、これはこうしないとウオッチが機能しなかったからだ。次に、ウオッチポイントを設定しcコマンドで実行を再開させている。そして、result変数の値が変化するところで実行が停止し、新旧の値が表示される。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
次の例では、引数の式が真になったとき実行を停止させるwatcheコマンドを使った。このコマンドの場合は、不可思議な「最初のnext」は不要だ。ここでは、はじめの方のフィボナッチ数は飛ばしてresultが4を超えたときに停止するようウオッチを設定している。このコマンドは条件なしで使うこともできる。例えば、watche resultとすると、result変数が変化したとき停止する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
シェルスクリプトが思い通りに動かないときは、echo文やprintf文を順次挿入して不正な値や到達しないコードパスを探したものだ。しかし、bashdbを利用すれば、変数をウオッチしたりブレークポイントを設定したりして、速やかにデバッグできる。
Ben Martin 10年以上にわたってファイルシステムに携わっている。博士課程を修了し、現在、libferris、ファイルシステム、検索ソリューションを中心にコンサルティングをしている。
プログラミングにかんする悩み、プログラミングの最新動向を知りたければ「Programing Bible」がお勧めです。
関連記事
- Programing Bible:バグ管理システム「Mantis」
Tracなどの著名なバグ管理システムが国内でも人気だが、Mantisもこれらと同様の機能を期待通りに完備しており、しかも無駄がない。一般的なユーザーでも利用可能なバグ管理ソフトウェアを探している開発者には最適といえる。 - Programing Bible:開発者のバグ潰しに役立つMantis
Mantisは、ソフトウェアにはつきもののバグが修正されるまで対処作業の進捗を確認するという完全なワークフローソリューションとして機能する。 - Programing Bible:さまざまな作業に対応するオープンソースのテストツール群
テストは開発プロセスにおいて重要な役割を果たす。ここでは、プロプライエタリな製品に比肩するだけの実力を持ったオープンソースのテストツールを紹介する。 - Programing Bible:Inquisitorでハードウェアをテストする
Inquisitorはオープンソースの主だったベンチマークツールを動かすためのラッパースクリプトで、何千台ものコンピュータを同時にストレステストすることもできる。ハードウェアの開発などを行う際には覚えておきたいツールの1つだ。 - Programing Bible:ソフトウェア開発者必見のWorkbench Linuxディストリビューション
Xubuntuをベースにして作られているWorkbenchは、開発者にとって有用なユーティリティとアプリケーションを豊富に用意している。特にソフトウェア開発に興味のあるユーザーの場合、その有用性はいちじるしく高いものとなる。 - Programing Bible:AppChecker――Linux Foundationからリリースされた新世代の開発支援ツール
Linux関連の開発作業で最も負担なのは、さまざまなディストリビューションの対応製品を際限なく準備しなくてはならない点である。この部分にメスを入れた開発支援ツール「AppChecker」がLinux Foundationからリリースされた。 - Programing Bible:petardfsでアプリケーションをテストする
petardファイルシステムは、エラーだけを生成するように設計されたファイルシステムである。システムテストと単体テストを行うのに役立つ。 - Programing Bible:zzufを使ったファズテスト
ファズテストは、ITセキュリティにおいてかなり前から非常に大きな関心事になっていた。だが、zzufという小さいながらも素晴らしいプログラムのおかげで、今では迅速かつ容易に自前でファズテストを実行できるようになっている。
Copyright © 2010 OSDN Corporation, All Rights Reserved.