まぶち氏からptraceのサンプルない?って言われたのでstraceを紹介しました。straceはptraceの難しいところをどうしているのか見るには良いですが、初めてptraceを使う人が見るもんじゃない気がします。
入門に使えると信じて、簡単なサンプルを作ってみたので公開。Linux専用です。 ソースコードはこちらからどうぞ。
(2008年7月25日追記)需要はなさそうなものの、一応ライセンスを明確にしました。修正BSDライセンスです。
うまくいけばトレース対象のシステムコール名がずらっと表示されるはずです。以下に私の環境での実行結果を示します。
$ gcc -Wall 20080724_ptrace_simple.c $ ls -l 合計28 -rw-r--r-- 1 katsuhiro katsuhiro 8679 2008-07-24 02:12 20080724_ptrace_simple.c -rwxr-xr-x 1 katsuhiro katsuhiro 13367 2008-07-24 02:28 a.out $ ./a.out ls -la 1115: child started 1115: sys out( 11): execve 1115: sys in(122): uname 1115: sys out(122): uname 1115: sys in( 45): brk 1115: sys out( 45): brk 1115: sys in( 33): access 1115: sys out( 33): access (略) 1115: sys in( 4): write -rwxr-xr-x 1 katsuhiro katsuhiro 13367 2008-07-24 02:28 a.out 1115: sys out( 4): write 1115: sys in( 6): close 1115: sys out( 6): close 1115: sys in( 91): munmap 1115: sys out( 91): munmap 1115: sys in(252): exit_group 1115: exited, st:0
動作はDebian GNU/Linux 4.0(etch) で確認しました。さほど変なことはやっていないはずなので、最近のLinuxディストリビューションなら問題ないと思います。たぶん…。
仕組みとしてはforkした後に親プロセスは監視役、子プロセスは監視対象、で役割分担します。
親プロセスの仕事はwait -> ptrace(PTRACE_SYSCALL, ...) を繰り返すことです。子プロセスに何か変化があるとwaitから戻ってくるので、その都度何が起きたか調べます。イベントには色々ありますが、サンプルで見ている種類をざくっと紹介します。
子プロセスにシグナルを渡さないと、子プロセスがシグナルを認識できません。逆に言うと監視役の親プロセスのさじ加減次第では、子プロセスに飛んで来たシグナルを消すこともできてしまいます。ただしSIGKILLとSIGSTOPは消せません。
受け取ったシグナルがSIGTRAPだったら、システムコールの入口/出口で止まったことを表しますので、システムコール番号の解析をします。
子の仕事はptrace(PTRACE_TRACEME, ...) を実行して「監視される準備」を整えるだけです。その後は余計なことをせずに監視対象にしたいプログラムをexecしてください。
いまさらですが、日記検索機能を改善しました。
今までは過去ログ1ページまるごと検索結果で出てくるために、検索結果に出てきたページを表示させても結果がどこにあるかわからなくて、再びブラウザ検索で同じ語句を検索する羽目に陥っていました。
当サイトではせっかく日付部分に <a name="..."> を打っているわけですから、namazuに <a name="..."> を目印にsplitする設定(--html-splitオプション)をしました。すると日付単位で検索結果が出るようになります。良きかな良きかな。
こんな便利な機能があるのに今まで気付いてなかったのがちょっとショックだった…。
毎日新聞が英字版でポルノ記事やら嘘八百を書き散らしていた問題に対して、担当の記者の言い訳。
「性的な話題を取り上げると読者の反応が良かった」上に、「仕事を失うことに恐怖感があり、MDNを閉鎖する言い訳を誰にも与えたくない」といった理由から性的な内容を取り上げていた。
ITmediaの記事毎日新聞、「低俗過ぎ」英文記事問題で内部調査公表 再三の指摘放置、「深刻な失態」より引用
まさに嘘でもなんでもどんと来い。全ては金のために。なんて崇高なジャーナリズムでしょうか…。
今回の事件の重大さは、一流マスコミにも関わらず記事チェック機能がいい加減だったことが露呈したことでしょう。
今回の事件を目の当たりにすれば、英語版の記事だけじゃなく日本版の記事にも、
「嘘で誇張すると読者の反応が良かった」上に、「会社が潰れることに恐怖感があり、毎日新聞社を閉鎖する言い訳を誰にも与えたくない」といった理由から(以下略
なんて思うところはありませんか?と勘ぐりたくなります。
毎日新聞は今回「役員と元編集長を処分する。」と厳しく出ました。恐らくさっさと手じまいにしたいのでしょうが、そうもいかないでしょう。この傷は深い。
大下邸に園芸のメンバーが集まり、飲み会をしていると、まるでつくばにいるかのような錯覚が。懐かしいんだぜー。
昨日の健康的な睡眠とはうってかわって、夜更かしして酒を飲んで枕も使わない不健康な睡眠でしたが、それもまた良し!
昼までうだうだして、新大阪駅へ。地下街(一階?)のぼてじゅうでお好み焼きを食べました。昼時だったからか、かなり混んでました。昼食後、園芸のみなさんは新幹線に乗って帰って行きました…。
大下さんと「終わっちゃったねえ、楽しかったねえ。」ってな話をしつつ帰りました。楽しかった非日常も終わってしまったんだなあ…なんて、大学生の頃より寂しさが増して感じるのでした。ぜひまた行きましょう。
昨晩は温泉に浸かってゆったりした上、22時消灯だったため、朝の7時に起きても気分爽快。ここ最近体験したことのないくらいの早寝でした。
朝ご飯を食べた後、宿を出発する前に宿の近所を散策しました。宿の裏にある八幡神社や、お寺(光明山常徳寺)に行きました。お寺ではじょーと一緒に謎のメッセージ「みてござる」を発見して喜んでました。仏様が見てるのかな。何にせよ変なのw
宿を後にする前に、写真を撮りました。そのときに宿も合掌造りだったことに気付きました。びっくりだよ。気付くのがあまりに…あまりに遅すぎたんだよ。
あと特筆すべき点として、宿にいたわんこが非常に人なつこくてかわいいです。初めて見る人にも吠えないどころか、寝転がって服従ポーズです。
さらに宿の裏の八幡神社に行こうとすると後ろをトコトコついてきます。そのままどこかへ行ってしまうのかと思いきや、人の周りをくーるくーる回ってます。神社から宿に帰ろうとするとやっぱりついてきます。か、かわいすぎる…恐ろしい子…!
高山に戻り、飛騨大鍾乳洞へ。鍾乳洞に入る前に大橋コレクション館があります(2007年「金塊が盗まれた事件」で一躍有名に)。飛騨大鍾乳洞を発見した大橋さんの趣味の一品が飾られています。展示物は脈絡無くて金持ちの趣味ですよ〜という空気が出てます。撮影禁止だったのでお届けできないのが残念です。
説明も適当で何が何だかいまいちすごさが分かりません。古そうな壺の前に「古い壺」という説明が書いてあったときは大層笑った。そりゃそうだけど、あまりに適当すぎるぞw
鍾乳洞はなんと気温18度。長袖に長ズボンでも寒かったです。しかし洞窟内の急勾配を登りながら見学するため、このくらいの気温じゃないと暑さで倒れそうです。
昼は鍾乳洞のふもとにあるメシ屋で飛騨牛入りラーメン(金箔付き)を食べました。名物を適当に組み合わせたハズレ料理かと思ったら、けっこうおいしいです。
帰りは名古屋でひつまむしを食べました。うまー。
つくばに帰らなければならないちかふみさんと分かれ、一同はそのまま大阪の大下邸へ。明日へ続く。
岐阜県は飛騨高山(高山市)、そして白川郷(白川村)に行って参りました。まずは新幹線で名古屋へ、そこで園芸の皆さんと合流しました。
その後は、特急ひだで高山まで。車内で「明治時代のあんぱん」を売っていたので買いました。酒粕を使っているそうです。ほのかな酒の香りがします。
駅でレンタカー(トヨタ、アルファード)を借りて、一路白川郷へ。合掌造りの家がたくさんありました。いやまあ、当たり前なんだけどさ…。外人がいっぱいいました。白川郷・五箇山は世界遺産に登録されただけあって、世界的にも有名なんですねえ。
白川郷集落の中で一番立派な建物と思われる和田家です。内部はほとんどが博物館ですが、人も暮らしていて2階の一部に「生活スペースなので立ち入り禁止」という表示があります。何だよそれ、おもしろいな。
写真撮りたかったのですが、内部は撮影禁止でした。残念。
白川郷はとにかく景色が良いです。田んぼが青々としていて、ぽつんと建っている家との対比が綺麗でした。
展望台からの眺めも格別でした。ただ少し山登りが必要なのでもっと涼しい時期に来ると幸せかも知れません。ここは冬もさぞかし綺麗なのだろうな…。
白川郷を後にして、宿へ。写真無いけど道の駅にも寄りました。宿の写真は明日の日記に載せます。メシがうまかった。写真の左奥に見えるのは飛騨牛を使ったすき焼きです。うーん、いいねー。
しかしなぜだか、私の鍋だけ焦げ臭くもうもうと白煙が上がっている?あまりに盛大に煙が出てるので、蓋をあけてみるとなんと割り下が入っていない。私のすき焼きだけ入れ忘れられたらしい…。哀れ野菜が焦げ焦げに。
頑張って焦げてない部分を食べるも、全然味がしない。味がしないながらも飛騨牛はおいしかったなあ。さすが飛騨牛!なんてその時は思っていたけれど。冷静に考えれば、割り下がないと気付いた時点で鍋を替えてもらうべきだった。今更言っても仕方ないですけど。
高山にはタイムリーというコンビニがたくさんありました。大手コンビニに無視されている辺り、田舎らしさが出ておりますよ。
三連休以上の連休前日、給料日、賞与日つまりボーナス、この三つは定時退社日です。これって業界の標準?
連休前に仕事しないで休んどけ?って気持ちは伝わりますが、他はよくわかりません。
あとうちの会社は水曜日と金曜日も「定時退社推奨日」とされています。これもイマイチよくわからんルールである。何か理由があるのかな。
晩ご飯をコンビニで買って、家に帰ってきてビニール袋をぽいって捨てると、ビニール袋の寿命がわずか5分です。私に買われたばかりに、即ゴミ箱行きになる袋達になんだか申し訳なくなってきて、最近はエコバッグを使っています。
コンビニのオマケ(カモノハシのイコちゃんが書いてある青いバッグ)なので、ペナペナで貧弱バッグです。初見ではすぐ壊れそうと欠点に感じていたものの、薄っぺらいから畳んで小さくできるし、通勤カバンに放り込んでも気にならない重さなので、普段から持ち歩けるんです。
持ち歩いても気にならない重さ、これは大きい利点です。もし丈夫でごつくて重いエコバッグをもらっていたら、恐らく持って出歩かなかったでしょう。だって邪魔くさいもん…。
同期の皆さんと飲み会しました。金曜じゃなくて土曜なのがポイント。店も街も駅も全く混んでいないのです。素晴らしいでーす。
お店は豆助(高槻市)です。全ての基本が豆腐、豆腐三昧です。
でも結婚して家庭を持つ人が増えてきたら、こんな集まりも出来なくなるだろうなあ。土曜に集まるなんて許されないだろうし。
来週末の旅行に必要な新幹線の切符を買ってきました。みどりの窓口で新幹線の切符を買ったのは初めてです。本来ならばネットで予約して、新幹線に乗る前に受け取れれば良かったのです。切符がよれよれになることもないし、切符をなくすこともない。とても管理が楽です。
しかしJR西日本&東海では JR東海エクスプレスカード(年会費1000円)を契約しないと、ネットで切符が買えません。割引されないならわかるけど、ネット予約そのものが出来ないってどういうこと?
天下の東海道新幹線ですから、ひどい売り方でも皆仕方なく買うけどね。いけ好かないやり方…。
家に帰ると早くも切符がよれよれになってた。うわーだから言わんこっちゃねえ。
東海道新幹線の切符の予約に関しては、JR東日本が良かったです。
大学時代はえきねっと(JR東日本)で買っていました。なかなか便利でして、ネットで購入しておけば、あとは駅に行って自販機にクレジットカードを突っ込むだけで切符が受け取れる(※)のです。
JR東日本が血迷ってJR西&東海の真似をし始めないことを祈ります。
(※)使用感は飛行機のチケットとほぼ同じ、と言うとわかりやすいでしょうか。最近、航空各社はチケットレスサービスに移りつつあるので、一歩遅れている感は否めませんが…。
突然鼻血が出た。
盛大に出血してたのでゴミ箱にたまってたゴミにダラダラ垂らして止まるのを待ちました。すぐ止まるだろうと思ったら、止まる気配なし。
鼻血自体は困らないのですが、その場から動けないのには困りました。暇すぎる。しゃーないので、血が垂れる様をぼーっと数えていました。
やっとこ止まったなあ、というころには80滴くらいだったかな。序盤は数えてませんが、恐らく合計で100滴くらいだと思います。
かなり大量に出血したんじゃないかと思うんですけど、1滴って何ミリリットルなんだろ?実は大したこと無いのかもなあ。
次の日の朝見たら、ゴミ箱のゴミが血だらけ&固まって一体化していました。もーガビガビ。
Sena氏の買い出し&ついでに自分の買い物&車がさびるからたまには乗るか、ってことで買い物に行ってきました。いつもは万代で買いますが、今回は道を間違って偶然発見した、高槻ジャパンというディスカウントストアへ。
あくまでも万代はスーパーマーケットなので、ペットボトルの箱買いをしようとするとたまに「箱はないですねえ」と言われたり、レジで箱の金額を間違って打たれたりします。一方、ジャパンはディスカウントストアだけあって、箱買い上等!という雰囲気で、箱がガンガン積んでありました。今度からジャパンにしようか?
今回は重さにして50kgくらいの飲み物を買いました(僕の分は含みません)。Sena氏の買いだめっぷりは毎回楽しいですw
普段電車通勤だから車の必要性はまるで感じないけれど、重い荷物を運ぶとき車って本当に便利だなあ…と思う。
普段の通勤はJRですが、夏は電車が異常に寒いです。人が少ないせいか、冷房が効きすぎです。長袖なのに寒いってどういうこった。
JRもたいがい寒いですが、今日乗った阪急電車が耐えられんほど寒かった。たまらなくなって弱冷房車へ移動しようと思ったら、眼前に「弱冷房車」って書いてあって絶望した。
立っていても座っていても寒いよ…。
同期が関東に行ってしまうとのことで。壮行会に参加しました。
期間は半年くらいらしい。がんばれー。
我が家のATOKさん、どうやら学習用の辞書が壊れたか、バカな変換を連発しています。MS-IMEには学習結果の初期化機能がありましたが、ATOKにはあったかな。あったはずだけどな…。
プロパティ -> 辞書・学習 -> 詳細設定ボタン -> ユーザ辞書のクリアボタン、は見つけましたけど、登録単語まで消えそうな雰囲気。登録単語が消えたら後が大変なので、システムが自動で登録した単語だけを抹消しました。
やり方は、辞書メンテナンス -> 辞書ユーティリティの、表示 -> 絞り込み表示にて登録単語、抑制単語のチェックを外します。すると自動登録単語だけが表示されますので、全て選択し辞書から削除します。これで幾分かマシになるはず。たぶん。
Sena氏の部屋でいただきストリートなどをやりました。先々週くらいにもやった気がするけど。気にしない。スーパーファミコン時代も含めていたストをやったことがないので、Sena氏に教えてもらいつつ進めています。
いたスト=モノポリー+インサイダー取引というと、聞こえはイマイチですが。やってみるとなかなか面白いです。以下、自分の理解。
目標金額を設定して全資産額が目標に達した人が勝ちです。正確には目標金額に達した後に銀行マスを通過すると勝ちです。
まずは選り好みせずに物件を買えるだけ買い(モノポリーっぽいところ)あるエリアを独占出来るまで何とか頑張ります。独占したエリアの株を買いあさった後、エリアの物件に投資して株価を一気に数倍に上げます(インサイダー取引と呼んだ所以)。すると一気に億万長者です。
後半になって空き物件が無くなり、金がだぶついてきた頃に一気に勝負が決まります。
徐々に目標金額に近づくのではなくて、半分くらいになったら後はインサイダーで一気に駆け上がってしまうため、妨害する術があまりないように思います。離れると追いつけないのは難点と言えば難点でしょうか…。
富山にいる同期組と遊びました。ビリヤードをした後は桜橋ボウル(大阪市北区)でボウリング。
ボウリングは缶ジュース一本おごりをかけて、チーム戦をやりました。参加者が自己ベスト出しまくる熱い展開になり、登り調子のままラストフレームへ。んで、最高スコアを出したO氏はなんと180オーバー。初めて見たよ、こんな数字は。
結果は、こちらのチームが一本差で勝利という大接戦でした。いやあ、面白かったわ。
梅田のラウンドワンに行くと、当店はなくなります、ってチラシがそこらじゅうに貼ってありました。あの立地にあってこの人の入りようなのに潰れるのか?
もしかすると潰れるのではなくて、単なる改装かな。
毎度おなじみとりひめ(高槻市)で飲み会。酒を飲むと愚痴っぽくなってしまっていかんなあ。
そういえばいつからとりひめがスタンダードになったんだろう?会社の同期飲みで何回か使ったせい?料理はおいしい方だと思うので不満はないんですけども…。
< | 2008 | > | ||||
<< | < | 07 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | - | - |
合計:
本日: