メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2011年2月28日月曜日

[Apache] r->headers_outに出力するヘッダ

r->headers_outに出力するヘッダ情報ってvalにNULL出していいのかな。


apr_table_setn(r->headers_out, "User-Agent", NULL);


ってな感じで。


apache http server付属のmod_disk_cache.cを見ると
valの値を無条件でstrlenしてるんだよね。
(keyも)

ってことで余裕のSEGV。

ダメじゃんか。
.

[Apache] プロファイラ

gprofを利用するためにapache http server(以下apache)から-pgオプションをつけてコンパイルする、なんてことをやってたんだけど面倒くさ。
あっちゃこっちゃにgmon.outが作成されるし。
(もっと調べろっていう話は置いといて)

で、oprofileってやつに切り替えた。

gprofよりも精度は落ちるらしいんだけど、これは楽。


# opcontrol --no-vmlinuz
# opcontrol --start
# /etc/init.d/apache2 start


ってやって

$ ab うんたらかんたら

で、実行しまくって


# opcontrol --stop
# opreport -l /usr/lib/apache2/module/mod_chxj.so > erer


ってやるとそこそこ素晴らしいアウトプットが得られる。
さらに

# opannotate -a -s /usr/lib/apache2/module/mod_chxj.so | lv


なんてやるとコードも一緒に表示してくれる、と。


もちろんmod_chxj自体は-gオプションをつけてコンパイルだぜぇ。



使い終わったら

# opcontrol --shutdown


ですかね。
.

[Apache] なんか情報増えてるよね

Apacheモジュールに関する日本語の情報がやたらと増えてるよね。

以前は日本語情報といえば、Apacheモジュール本の著者の方のページとmod_uploaderの作者の方が公開している情報ぐらいだった。

さて、それは置いといて、


$ gdb /usr/sbin/apache2


と起動して


>run -X -f /etc/apache2/apache2.conf

なんてたたいてdebugするわけなんだが
module内で内部リクエストではなく外部リクエストとして
自分自身へリクエスト投げると、さあ大変。

お手軽デッドロック。

で?
.

復活するよ

ちょっといろいろあってさぼってた。
復活するよ。


そんだけ。