2008-10-01から1ヶ月間の記事一覧

サンプルゲームを公開

いつまでもはてなの上に書いているわけにいかないので、Sourceforgeを使って公開しておきました。http://sourceforge.net/projects/stapgames/今のところマインスイーパぐらいしかまともなゲームがないですが、今後増やしていく予定です。 コードはsvn経由で…

入力をとらえる

ライフゲームでは、プログラム上で指定した初期値から動きつづけるプログラムでしたが、実際に遊べるゲームを作るには、ユーザからの入力をとらえる必要があります。

qemu/kvmのイメージファイルのマウント

qemu(及びkvm)のハードディスクイメージを直接ホストでマウントするには、イメージ先頭のヘッダをスキップすればいいらしい。Wikiaに載っていた。 mount -o loop,offset=32256 hd.img /mnt offsetというオプションがあったのか・・・。ググればいいんだけど…

linux-image-debugパッケージの問題

昨日気づいたのですが、Ubuntuのカーネルデバッグ情報パッケージ(kernel-image-debug)には、カーネル自体のデバッグ情報は入っていますが、カーネルのドライバ(モジュール)のデバッグ情報は入っていないようです。

ライフゲームを作る

Systemtapのプログラム例として、できるだけ役に立たなさそうなものを選んでみました。 今回取り上げるのはライフゲームです。非常に単純なルールなので、わかりやすく、かつ(実用上)役に立ちません。 ライフゲームの基本的なルールは、Wikipediaによると 碁…

最新のSystemtapのインストール方法

今日はSystemtapの最新版を、ソースコードからインストールする方法(FedoraとUbuntu)について説明します。 Ubuntu 身も蓋もない言い方をすれば、Wikiを参照してください。

Tipsなど

Systemtapのコマンド自体あまり知られていないですが、Systemtapを使う上でのTipsを紹介します。 プローブポイントからアクセスできるローカル変数一覧を知る 裏技的ですが、エラーメッセージから、どういう変数があるかが分かります。

Tap言語

前回の例でも使っていましたが、Systemtapにはあらかじめいくつかの関数が定義されています。これらの関数のほとんどは、Tapsetというスクリプトライブラリで定義されています(一部の関数は組み込み関数です)。オンラインマニュアルを引けば、Systemtapが…

簡単な使い方

Systemtapは、端的に言えばカーネルを対象とした(最新のものだとユーザプロセスも対象にできますが)プログラマブルなデバガです。基本はブレークポイントを埋め込んで、その箇所の情報(ローカル変数など)を取ってきてあれこれするのに使います。例えば、以下…

インストールの仕方

Systemtapについてはプロジェクトのページを見てください。基本的にはLinux上で使えるSunのDtraceのような機能です。WikiページにはFedoraやUbuntuにインストールする方法が書いてあります。パッケージでインストールするだけではダメなのは、カーネルのデバ…