Archive for 2005年1月
アパート契約につきあう
by bichir on 1.30, 2005 , under ふつ~の日記
昨日の夕方から、この前の韓国人のアパートの本契約に付き合った。
あいかわらず、適当な通訳でごまかして(おぃおぃ)、でもってそのまま2人で食事に行った。
Skypeはじめてみた
by bichir on 1.29, 2005 , under PC
前々から存在は知っていたけどなんとなく入れてなかった Skype をインストールしてみた。インストールもめちゃめちゃ簡単。
納得いかない仕事
by bichir on 1.28, 2005 , under 仕事のこと
今やってる仕事、あきらめたはずなんだけどやっぱり納得いかない。
Norton 2005 のアクティベイト化(2)
by bichir on 1.27, 2005 , under PC , 怒ってます!
経過報告。
Norton 2005 のアクティベイト化
by bichir on 1.27, 2005 , under PC , 怒ってます!
前からあったノートンのアクティベイト化問題、相変わらず発生し続けていた。
ようやく見つけたSSHクライアント
by bichir on 1.26, 2005 , under 携帯(WindowsMobile)
こないだから探していたSSHクライアント、待っていれば(自分でなんとかしないところが技術者としてなさけないかぎりなんだけど…)いつかPocketPuTTYに実装されるんだろうけど、待ってもいられないので…。
ロールカステラ
by bichir on 1.26, 2005 , under 食い物
実は昨日の朝から体の調子がおかしく、ハラこわしていて少し熱っぽかった。
なんか定期的にこういう症状があるんだよね。悪いもんが体内に蓄積されていって、飽和すると発症。みたいな…。
ソフトリセット禁止令
by bichir on 1.25, 2005 , under 携帯(WindowsMobile)
着々と環境が整いつつある Dopod 818 だけども、日本語入力に Decuma Japanese をインストールしてみた。
特に問題なく動作するし、入力の感覚もいい。
こりゃ買うしかねぇか。
と思って、さっそくレジスト。
周辺機器
by bichir on 1.24, 2005 , under ガジェット
818の環境を整えようと、今日は3つばかし通販で購入。
再来週、日本から出張者が来るのでその時に持ってきてもらおうと…。
メールの設定
by bichir on 1.22, 2005 , under 携帯(WindowsMobile)
今日は昨日に引き続き Dopod 818 の設定。
昨日やったメールの設定がどうしてもうまくいかない。
今日はここまで (Dopod 818)
by bichir on 1.21, 2005 , under 携帯(WindowsMobile)
昨日買った XDA II mini だけども、というより、WindowsCE (今ではPocketPC っていうの???)がよく分からないのでむちゃむちゃ苦労したりする。
で、とりあえず、今日まででやったこと。
また下ネタ系です
by bichir on 1.21, 2005 , under 中国の小話
下ネタ系です
圣人说: 女人有两个优点,
但却有一个漏洞。
而男人没有优点,
但有一个长处。
于是乎男人常常抓住女人的两个优点,
用自己的长处弥补女人的漏洞。
とりあえず買ってみた XDAII mini
by bichir on 1.20, 2005 , under 携帯(WindowsMobile)
タイプ的には衝動買いする方で、今回もそのパターン。
おととい欲しい!って思ったんだけど、今すでに手元にあったりする。
記録更新中
by bichir on 1.18, 2005 , under 中国関連
2ヶ月くらい前に書いた電球が駄目になるやつ。
順調に記録を更新していて、現在 15 個になっている。
つか、これって電球が悪いんじゃなくて、うちのアパートの電気系統に問題があるかグレムリンのせいだろうね。今頃気がついた。
the EYE
by bichir on 1.17, 2005 , under 映画
DVD で 「the EYE」 を観た。
言語:中文、字幕:中文 だったので会話の内容はあんまし理解できなかったけど、大体のあらすじはなんとなく分かった。
Virtua Fighter 3
by bichir on 1.14, 2005 , under ふつ~の日記
ここんとこ、下班後もずっと家で仕事。
ちょっと息抜きがてら、変圧器の熱暴走にビクビクしつつVirtua Fighter 3なんぞをやってみたりする。
今さらVF3なんだけども、持ってたソフト自体少ないのでしかたがない。
未決シンボル
by bichir on 1.13, 2005 , under 仕事のこと
えー、今仕事関係でプログラミングをせっせとやっているわけだけど、今回の仕事はうちの会社としてはちょっと異色で下請けでコーディングをしていたりする。
アーメン
by bichir on 1.12, 2005 , under 中国の小話
訳ができないのでさっぱりどこが面白いのかわからない…。
亲爱的上帝,万能的主啊:
请您保佑那些不打电话给我,
也不发短信给我,
更没有想念我的家伙们吧。
让他们上厕所时没有带手纸,蹲着去吧。
阿门。
何回目だろう…
by bichir on 1.12, 2005 , under 怒ってます!
おととい北京に戻ってきたんだけど、もどってきた初日にまた熱水の給水が停止。それも2,3日間らしい…。
つな八の天ぷら食ってきた
by bichir on 1.08, 2005 , under 食い物
買い物終えて、一人で「つな八」へ。
で、天婦羅定食を食べた。
今日は買出し
by bichir on 1.08, 2005 , under ふつ~の日記
中国にいる間にズボンがすり破れた。
だもんで今日は買出し。
服やらあと適当にレトルト食品かな。
散髪も中国ではまだ行ったことがなく、日本に帰国した時にいつも行く。
なんで今日は散髪にも行こう。
昼めし何食おうか…。
今夜は対州へ
by bichir on 1.07, 2005 , under 食い物
今夜は同僚と3人で川崎の武蔵新城にある焼き肉屋、「対州」へ行ってきた。
ここはお気に入りの店。
新札
by bichir on 1.06, 2005 , under ふつ~の日記
今日はじめて日本の新札見た。
前回、中国へ出張する時はまだ発行されてなかったよな?たしか。
新しい1000円札を見たときは一瞬ふるい100元札のように見えた。
新しい10000円札のホログラムは一瞬スクラッチしたくなる衝動にかられた(充値カードのせいかな?)。
んだけ。
饅頭の結婚
by bichir on 1.06, 2005 , under 中国の小話
これは全然わからん。多分、中国の結婚の時のバックグラウンドを知らないと解らないんだと思う。
两个特相爱的馒头决定结婚。
可是当举行婚礼时新郎却找不倒新娘了。
新郎着急的问一直跟在身边的一个花卷。
花卷害羞得说:讨厌,人家盘头了嘛
ネットワークインフラ
by bichir on 1.06, 2005 , under ふつ~の日記
日本にいる間は友人の家に滞在しているんだけど、彼の家は100Mbpsの光接続。
サクサク快適というか、なんのひっかかりもなく、精神衛生的にすごくいい感じ。
中国だと512KのADSL。とは言え、実際には512Kも出てない。
モデムで接続してた時のような感覚。
韓国・日本のように中国でこの辺りのインフラが整備されてくるのっていつになるんだろうね。
とりあえず最初の夜は…
by bichir on 1.05, 2005 , under ふつ~の日記
何を食べようか考えたのに、結局初日は COCO一番カレー。
なんでやねん。
つか、ほんとはおいしい牡蠣フライ定食を食べに行ったんだけど、正月休み。
いつまで正月やねん…。
しかたないので COCO一番に行ったと。
会社に到着
by bichir on 1.05, 2005 , under ふつ~の日記
とりあえず会社に到着。
いや~、日本は暖かいです。まじで。
飛行機の中はずっとパソコンぱちぱち。仕事してた。
ぜんぜん早くない成田エキスプレスの中ではマンガを読んで、地下鉄の中では日本滞在中に何食べようか考えてた。
日本に帰ってきたときは食い物だけが楽しみ。
明日帰国
by bichir on 1.05, 2005 , under ふつ~の日記
明日、というか今日帰国する。
朝一の便。
今日会社の同僚とチャットしていて東京の天気を聞いてみると、明日は10℃くらいになるかもしれんのだと。
あれ?
なんか雪とか降ってたんじゃなかったっけ?
ってかんじだけど、そんなのだいぶ前の話?
毎回思うんだけど、「気温30℃。」とか言われると暑いな。とかわかるけど10℃ってどんなもんかピンとこない。
十分寒いんだろうけど、北京からいくとやっぱ暖かく感じるんだろうね。
かわいそうな男
by bichir on 1.04, 2005 , under 中国の小話
どっかで似たような話、聞いたことある気がする…。
酒吧内一位先生呆看着自己的酒杯,
一个凶悍的卡车司机走过来拿着他的酒杯一饮而尽。
这个先生哭了起来,
司机说:
“别这样子,我不过是开个玩笑,我在给你买一杯好了“
可怜的先生说:
“今天是我一生中最倒霉的一天,首先我睡过了头,
错过一个重要的会议,背老板炒了鱿鱼。
离开公司发现车子被偷了。坐出租车回家丢了钱包。
回到家发现老婆和花工睡在一起。
我来到酒吧准备用最后一点钱结束生命,
你又把我的毒药喝了。“
初心者のためのSSH解説
by bichir on 1.03, 2005 , under TIPS
セキュアなシェル環境を提供してくれる ssh についての解説です。
初心者の人にもわかりやすく書いたつもりです。
簡単すぎるところは読み飛ばしてください。
結局SugarHeelへ
by bichir on 1.03, 2005 , under ふつ~の日記
仕事の方は一段落つきそうなので午後からSugarHeelへ。
来た時には店主とあとお客さん2名。
設定(Windows)
by bichir on 1.03, 2005 , under TIPS
ここでは Windows での代表的な SSH クライアントである PuTTY の設定について説明します。
TeraTERM for ssh も ssh 対応していますが、SSH1 のみの対応です。SSH1 には潜在的なセキュリティホールが存在するので SSH2 を使ったほうがいいと思います。
SSHのポートフォワーディング機能
by bichir on 1.03, 2005 , under TIPS
SSH はデフォルトで、トンネリング機能を実装しています(SSH開発者は非常にセンスがいいと思う)。トンネリングするデータもすべて暗号化してくれるので、セキュアです。このトンネリング機能がポートフォワーディングと呼ばれる機能です。
SSHとは
by bichir on 1.03, 2005 , under TIPS
UNIX には古くから、rsh, rcp 等のリモート環境でコマンド実行や、ファイルの送受信を行うプログラムが実装されています。例えば、自分がログインしているホストAから、ホストB上でコマンドを実行するのには、rsh というコマンドを使用しました。
このような r* なリモート系操作を行うコマンドは、非常に便利な反面、やりとりされるデータが raw (生)データであるため、通信データの傍受(横取り)に対しては非常に脆弱でした。
そこで開発されたのが SSH です。SSH は上記の r* なリモート操作を行える上、通信データをすべて暗号化してくれます。また、その暗号化方式も暗号キーと複合キーが同一である慣用暗合法ではなく、公開暗号キーという暗号キーと複合キーが別々である方式をとっているため、これを解くには膨大な計算量を必要とします。
トンネリングについて
by bichir on 1.03, 2005 , under TIPS
"IPアドレスとポート番号"で、「IPアドレスとポート番号へのアクセスが正常に行える状態にあって~」と説明しました。通信処理を行う場合、お互い(サーバとクライアント)が話のできる環境になければ、コミュニケーションができないというのは当然のことです。
IPアドレスとポート番号
by bichir on 1.03, 2005 , under TIPS
SSHの利用の前に、基本的な理屈を知っておいた方が早いと思うので、IPアドレスおよびポート(あるいはポート番号)について説明しておきます。「んなこと知ってるよ」という方はすっとばしてもらって構いません。
設定(Unix/Linux)
by bichir on 1.03, 2005 , under TIPS
SSHを利用する際、SSHサーバが許可しているのであればパスワードによる認証でログインすることができます。
これまでにも説明してきたように、パスワードによる認証はパスワードを知っている人間であればどこからでもログインできるため、SSHキー認証にしてログインできるクライアントマシンを限定した方がよりセキュアです。
パスワード認証を抑止するには、/etc/ssh/sshd_config内にある、PasswordAuthenticationの値をnoに設定します。
作ったツール・スクリプトの紹介
by bichir on 1.03, 2005 , under PC(作ったツールとか)
作成したスクリプト類の紹介です。すべてフリーです(たいした物はない...)。
ddoup.sh
by bichir on 1.03, 2005 , under PC(作ったツールとか)
ダイナミックDNSサービスを提供しているddo.jpですが、定期的に更新をかけている方が多いようで毎時 0 分前後にアクセスが集中していてレスポンスが悪くなるらしいです。
tclbiff
by bichir on 1.03, 2005 , under PC(作ったツールとか)
もうずいぶん昔の話になりますが、POP 対応の biff を探したことがありました。けど、なかなかいいのがなかったので、ないならつくっちゃえ。ってことで Tcl/Tk を使って、ちょちょっと書いてみたものです。稚拙なコードなので公開するのはちょっと恥ずかしいってのもありますが、いちお動いているので...。あ、APOP 未対応です。
wgetbot
by bichir on 1.03, 2005 , under PC(作ったツールとか)
社内や家庭内(はあんまりないか…)の Web page の検索システムを構築したい。というような場合、ロボットや検索エンジンを買って…、なんてたいそうなことをやらなくても、wget + namazu で結構精度の高い検索システムが構築できます。また、私の場合、ISDN でフレッツ・i を導入していた頃の名残で squid をキャッシュサーバとしてたてていますが、この wgetbot を例えば自分が会社に行っている間とかに自分が普段よくいくページを巡回させておけば squid のキャッシュに残るので、より高速なウェブ閲覧が可能になるわけです(ディスクの空きが許すならば squid.conf を書き換えてより大きなファイルもcacheできるようにしましょう)。
fevent
by bichir on 1.03, 2005 , under PC(作ったツールとか)
kevent() を使用した、ファイルのイベント監視をするプログラムです。動作確認は、FreeBSD 4.X で行いました。監視対象ファイルに対して、指定したイベントが発生するまでプロセスはブロックされます(イベントはカーネルから通知されます)。
例えば、シェルスクリプト中で、あるファイルが他のプロセスによる書き込みがあるまで処理を wait 状態におきたいような場合に便利でしょう。
miniloto
by bichir on 1.03, 2005 , under PC(作ったツールとか)
宝くじネットからミニロトの過去の抽選結果を獲得してきて、結果の偏差値を表示するシェルスクリプト & Cプログラムです。
ただ偏差値を表示するだけで、予想を行うわけではありません(偏差値の低い数字が出やすい…かも!?)。
numberplacer
by bichir on 1.03, 2005 , under PC(作ったツールとか)
ナンバープレイスとかいうパズルが最近の雑誌とかによく載っています。それを解くプログラムをつくってみました。特に特別な関数を呼び出したりはしていないので、gcc 等が動作する環境であれば OS には依存しないと思います。こちらでは FreeBSD で動作確認しました。
処理自体は、特殊なことは全然していなくて最終的には試行錯誤処理に入りますので、問題によっては膨大な時間がかかってしまいます…。(^^;
loginfo.sh
by bichir on 1.03, 2005 , under PC(作ったツールとか)
Home Page を CVS で管理するようにしましたが、cvs でコミットかけたタイミングで同時にコンテンツもアップデートしたいな。と思いました。cron を使う方法もありますがこれだとリアルタイムで更新をかけることはできないので、CVS の loginfo を使って自動更新するスクリプトを組んでみました。
popper.sh
by bichir on 1.03, 2005 , under PC(作ったツールとか)
bash には /dev/tcp|udp/ホスト/ポート番号 にアクセスすると、socket を使ってそのサービスに対する通信処理を開始する機能が実装されています。
で、これを使って bash スクリプトによるちょ~簡易メーラを書いてみました。
dirstack
by bichir on 1.03, 2005 , under PC(作ったツールとか)
昔、UNIX MAGAGINE だったかなんかに *csh 用の dirstack が載っていました。dirstack とはどういうものかというと、これまでに移動した directory の履歴をある程度の個数分記憶しておき、あとからスタックの番号指定でそのディレクトリに移るという機能です。
例えば↓
WinVNC でアクセスコントロール
by bichir on 1.03, 2005 , under TIPS
VNC クライアントのアクセス元を限定したい場合、レジストリに以下を追加します。
コマンドプロンプトでのタブコンプリージョン (WinNT, Win2K)
by bichir on 1.03, 2005 , under TIPS
レジストリエディタで、以下のキーを編集します。(NT or 2000)
WinVNC で接続許可
by bichir on 1.03, 2005 , under TIPS
VNC でクライアントから接続要求が来たときにサーバ側でそれを許可するかしないかのメニューを表示させる。
Linux TIPS
by bichir on 1.03, 2005 , under TIPS
Linux (主に Miracle Linux) に関する TIPS です。
VMWare関連
by bichir on 1.03, 2005 , under TIPS
ML V1.X 系は Turbo ベースなので turbo-linux としてインストールする。ML V2.X 系は Red Hat ベースなので redhat-linux としてインストールしてやれば OK。
以下は vmware3 での Miracle Linux V2.0 の vmwaretools インストール実行例。
sendmailの設定
by bichir on 1.03, 2005 , under TIPS
Miracle Linux v2.x はデフォルトではlocalhost以外からのSMTPサービスをオープンしていません。Miracleのsendmail.cfの元となっているのは、/usr/share/sendmail-cf/cf/miracle.mcなので、こいつの:
ソフトウェアRAIDの設定
by bichir on 1.03, 2005 , under TIPS
/etc/raidtab に以下を設定する。
例えば、/dev/sdb1, /dev/sdc1 から /dev/md0 (RAID1)を作る場合:
LVM(Logical Volume Manager)の設定
by bichir on 1.03, 2005 , under TIPS
ディスクが複数台あるものを結合して1つの大きなパーティションとして使いたい。というような場合があります。もちろん RAID カードを使って H/W 的にそういった環境を構築することも可能ですが、SISTINAという会社が開発(追記:SISTINAはRedHat社に買収されました)している LVM (Logical Volume Manager) を使えばソフト的にそのような環境を構築することも可能です。SUN の DiskSuite とか Veritas の vxva とかを利用したことのある方であればピンとくるでしょう。
LVM はディスクの結合だけではなく、ホットスワップ、スナップショット、ボリュームのリサイズ等々が実装されており、結構高機能です。仕様をすべて把握しているわけではありませんが、ミラー機能は存在しない雰囲気です。が、LVM のメーリングリストを見ると、Software RAID 上に LVM パーテイションを作成しミラーする。というような運用をして、この点を補っているようです。
MRTG でシステムの温度を監視
by bichir on 1.03, 2005 , under TIPS
使っている PC が xmbmon によるハードウェアの温度情報の取得が可能であれば、それも MRTG でグラフ化することができます。
MRTG でメモリ使用量を監視
by bichir on 1.03, 2005 , under TIPS
MRTG のコンフィグファイルに以下を追加する。
SSE を有効化する
by bichir on 1.03, 2005 , under TIPS
Pentium や Athlon でサポートされている SSE instruction を使うには、カーネルコンフィグレーションファイルに以下を追加してやります。
ISO イメージを仮想的にマウントする
by bichir on 1.03, 2005 , under TIPS
カーネルコンフィグレーションで vn ドライバを有効にして再構築する。
Kterm で日本語(euc)が化ける
by bichir on 1.03, 2005 , under TIPS
まったくクリーンにインストールした直後だと、Kterm で日本語表示が文字化けします。
jailスクリプト
by bichir on 1.03, 2005 , under TIPS
FreeBSD 4.5 での jail 環境を構築した時の情報です。
jail の構築のやり方については、man jail やその他ウェブ上にたくさん転がっていますので、そちらを参照してみるといいと思います(たぶん man jail だけで十分だと思います)。ここでは、jail 環境構築後に jail 内でデモンを自動起動/停止を行うためのスクリプトについて紹介します。
※ もちろん、いろいろやり方があって人それぞれでしょうが、私はこんなやり方をやってみました。というものです。
ホイールマウス(PS/2)を使う
by bichir on 1.03, 2005 , under TIPS
まずは、rc.conf に以下を設定して moused を起動する。
GDB の使い方
by bichir on 1.03, 2005 , under TIPS
gdb を使うのにこれだけ知っておけばいいかな(てゆーか私も gdb はこの位しか知らない)。と思われるものを列挙してみました。(間違ってる可能性もあります。)
Q12: 設定したブレークポイントを有効化したい。
by bichir on 1.03, 2005 , under TIPS
Q39: 強制的なcore file生成。
by bichir on 1.03, 2005 , under TIPS
BSD系OSにはgcoreと呼ばれる稼動中プロセスのイメージをそのままcore fileに吐き出させるというコマンドがあります。core file生成後はそのプロセスはそのまま動作し続けます。
Linuxにはこのようなコマンドはサポートされていませんが、gdb(5.2以降)を利用するすればgcore相当の機能を利用することができます
Q38: アセンブラコードを見たい。
by bichir on 1.03, 2005 , under TIPS
何かの理由でアセンブラコードを見たい時があります。このような場合は、disassemble コマンドを使用します。
Q37: コマンドの使い方の詳細を知りたい。
by bichir on 1.03, 2005 , under TIPS
各コマンドの詳しい使い方は、help コマンドを利用すればその使い方が出力されます。
Q35: gdb コマンドの省略形規則。
by bichir on 1.03, 2005 , under TIPS
これまでにもいくつか説明してきましたが、gdb のコマンドは省略することが可能です。この規則は、マッチするものが 1 つになったときにそのコマンドが実行されるというものです。たとえば、run は r に省略することが可能ですが、r で始まる gdb のコマンドは、run しか存在しないため、このようなことが可能です。where は w だと、gdb が watch, whatis, where, while, while-stepping, ws のどれか判別不能なので whe まで入力してやる必要があるわけです。つまり、ここまで説明したコマンドで敢えて省略形を記述していないコマンドでも、省略できるということです。
Q33: ソースファイルの処在を通知するには?
by bichir on 1.03, 2005 , under TIPS
ソースファイルの場所と、コマンドを実行した場所の関係等々の理由により、GDB がうまくソースを表示できない場合があります。このような場合は、directory コマンドを使用して、ソースファイルの在処をデバッガに教えてやります。
Q32: デバグ最中のプログラムを終了させたい。
by bichir on 1.03, 2005 , under TIPS
再度、一からデバグをしたい。というような場合、プログラムの性質によってはそのプログラムが使用している資源を解放させてからでなければ、再度実行することができない場合があります。そこような場合は、kill コマンドを使用します。
Q36: shell コマンドの呼び出し。
by bichir on 1.03, 2005 , under TIPS
デバグの最中に shell コマンドを呼び出すことができます。
Q31: バッチ処理したい。
by bichir on 1.03, 2005 , under TIPS
デバグの手順をファイルに記述しておき、それをバッチ処理することも可能です。
たとえば、
Q30: 任意の関数を動的に呼び出したい。
by bichir on 1.03, 2005 , under TIPS
デバグの最中に、print コマンドを使用して任意の関数を呼び出すことが可能です。
Q28: 変数の型を知りたい。
by bichir on 1.03, 2005 , under TIPS
変数の型を知るには、whatis コマンドを使用します。
Q27: 変数の値を書き換えたい。
by bichir on 1.03, 2005 , under TIPS
デバグの最中に、変数の値を書き換えたいという場合があります。このような場合は、set コマンドを使用します。
Q26: シグナルをハンドリングしたい。
by bichir on 1.03, 2005 , under TIPS
SIGINT 等々のいくつかのシグナルは、GDB 自身がハンドリングします。このシグナルの状態は info signal で確認することが可能です。
Q25: 任意の場所でブレークしたい。
by bichir on 1.03, 2005 , under TIPS
プログラムを run したのはいいけど、ブレークポイントを設定するのを忘れていた。あるいは、意図的にブレークポイントを設定せずに、任意の場所でブレークさせたい場合は、実行中に CTRL+C を入力すると、その場所で停止します。
Q24: 実行を継続させたい。
by bichir on 1.03, 2005 , under TIPS
ブレークポイントでブレークした後、処理を継続させたい(次のブレークポイントまで走らせたい)場合は、continue コマンドを使用します。continue は c と省略させることが可能です。
Q23: 特定の場所に移動したい。
by bichir on 1.03, 2005 , under TIPS
デバグしている最中に、特定の場所に処理を移したい場合がごくたまにあります。たとえば、
Q21: 関数の中にはいりたい。
by bichir on 1.03, 2005 , under TIPS
nextを使ってデバグを進めていった場合、現在の行が関数呼び出しだった場合でも、next はその関数を呼び出した後の行に移ります。そうではなくて、その関数内に入っていきたい場合は、step コマンドを使用します。step は s と省略可能です。つまり、逐次実行している時に、いちいちブレークをはるのが面倒という場合に使用します。
Q20: 一行一行実行していきたい。
by bichir on 1.03, 2005 , under TIPS
ブレークポイントに停った後、一行一行実行していくには、next コマンドを使用します。next は n と省略することができます。
Q19: アドレスから関数のシンボル名を見るには?
by bichir on 1.03, 2005 , under TIPS
デバグシンボルのないプログラムや、core file から関数名を取る方法です。デバグシンボルがついてれば使う必要なし。
core file 等を覗くと、SEGV とかが落ちた場所(アドレス)がわかります。そのアドレスを info symbol に指定すると関数名がわかります。
Q18: メモリダンプを見るには?
by bichir on 1.03, 2005 , under TIPS
あるアドレスからのメモリダンプを見るには、x を使用します。
Q22: フレーム間を移動したい。
by bichir on 1.03, 2005 , under TIPS
where でフレームを確認した後、そのフレームを移動するには、up/down コマンドを利用します。
Q17: レジスタの中を見るには?
by bichir on 1.03, 2005 , under TIPS
デバグ情報付きのプログラムのデバグの際にはあまり見ることはありませんが、デバグ情報がないプログラムの、core file 等を調査する場合にレジスタの中身をチェックして、各関数の引数情報を取り出すことがあります。この時は、info register コマンドを利用します。
Q16: 変数の値を常に監視したい。
by bichir on 1.03, 2005 , under TIPS
next"等を使用している場合に、変数をいちいち "p 変数名" するのは面倒な場合に display コマンドを使用して、その変数を常に監視(表示)することが可能です。以下の例では、変数 miss を常に表示します。
Q15: 変数の値を見るには。
by bichir on 1.03, 2005 , under TIPS
プログラム中のある変数の値を見るには、print コマンドを使用します。print は p と省略することが可能です。
Q9: 設定したブレークポイントを表示したい。
by bichir on 1.03, 2005 , under TIPS
設定したブレークポイントを一覧表示するには、
Q11: 設定したブレークポイントを無効化したい。
by bichir on 1.03, 2005 , under TIPS
特に、大規模なプログラムのデバグや、再起呼び出しを使っているプログラムをデバグしていると設定したブレークポイントを一時的に無効化したい(あとでまた利用する)というような場合があります。これには、disable コマンドを使用します。disable は dis というふうに省略できます。ブレークポイントの削除と同様に、info break で得られるブレークポイントの番号を指定します。
Q14: ソースを見たい。
by bichir on 1.03, 2005 , under TIPS
現在の場所のソースを見るには、list コマンドを利用します。list は l と省略することができます。
Q13: 今どこにいるの?
by bichir on 1.03, 2005 , under TIPS
ブレークして、今どこのスタックフレームにいるのかを表示するには、where コマンドを利用します。where は whe と省略できます。
Q10: 設定したブレークポイントを削除したい。
by bichir on 1.03, 2005 , under TIPS
設定したブレークポイントを削除するには、delete コマンドを使用します。delete は d というふうに省略することもできます。delete には、ブレークポイントの番号(info break で得られる Num のフィールドの値)を指定してやります。以下手順です。
Q7: 条件付きでブレークポイントを設定するには?
by bichir on 1.03, 2005 , under TIPS
たとえば、for ループ内のある行で、ループ内カウンタがある値になった場合にブレークさせたい場合があります。そのような場合は以下のように実行することで、条件付きブレーク設定を行うことができます。 たとえば以下のようなソースの
Q6: ブレークポイントを設定するには?
by bichir on 1.03, 2005 , under TIPS
プログラムをデバグする際に、プログラムをある場所で中断したい。といった要求が出てきます。そのプログラムの実行を中断させるポイントをブレーク ポイントと呼びます。gdb では、関数名、あるいはソースの任意の行でブレークポイントを設定させることが可能です。あまり使いませんが、アドレスでの指定も可能です。
Q5: プログラムを開始させるには?
by bichir on 1.03, 2005 , under TIPS
gdb でプログラムを実際に開始してでバグをはじめるには、
Q4: 起動中のプロセスをデバグするには?
by bichir on 1.03, 2005 , under TIPS
稀なケースかもしれませんが、gdb はデモン等の動作しているプログラムにアタッチしてデバグすることも可能です。方法は、
Q3: core file をデバッガで調査するには?
by bichir on 1.03, 2005 , under TIPS
プログラムが core dump した際に生成された core file を調査するには、
Q2: GDB を起動するには?
by bichir on 1.03, 2005 , under TIPS
コマンドラインから以下のようにして gdb を起動します。
Q1: プログラムをデバグするには?
by bichir on 1.03, 2005 , under TIPS
プログラムをデバグするには gdb を利用します。デバグ作業を簡単にするにはプログラムのコンパイル時の cc のオプションに、 -g オプションを指定し、デバグ情報が埋め込まれるようにしてやった方がいいでしょう。
Q8: 変数の値が更新されたタイミングで停止させるには?
by bichir on 1.03, 2005 , under TIPS
たとえば、グローバル変数などの値が更新されたタイミング等でプログラムをブレークしたかったり、よくあるのが領域破壊を検出させるために使ったりします。
Q34: emacs を利用した gdb の起動。
by bichir on 1.03, 2005 , under TIPS
emacs を使うと、デバッグ作業もだいぶ楽になります。emacs 起動後、M-x gdb を実行し、プログラム名を与えてください。
Q29: 変数の大きさを知りたい。
by bichir on 1.03, 2005 , under TIPS
変数のサイズは、sizeof で確認できます。
bichir.ddo.jpの停止
by bichir on 1.03, 2005 , under ふつ~の日記
今年の3月くらいに、自宅で動かしているサーバは停止の予定。
再開はおそらく自分が中国から引き上げる時。
ちょっと一休み
by bichir on 1.02, 2005 , under 仕事のこと
今やっている仕事は、とりあえず 1月5日 にベータ版を相手に渡すことになっている。
年越し&初日の出
by bichir on 1.01, 2005 , under ふつ~の日記
2004年最後の日と2005年最初の日は去年いろいろお世話になった店主のお店で過ごすことに決定。
31日は午後3時くらいに店主の店へ到着。
そっからはまったりと過ごしてた。






Recent Comments