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

2008年2月14日木曜日

[Apache] ApacheをAPR_POOL_DEBUGつけてコンパイル

ソース読んでて気づいたのですが・・・・、


CPPFLAGS=-DAPR_POOL_DEBUG ./configure
make
make install

とすればPOOLのデバッグが有効になるかと思ってた。

でも、これじゃだめっぽい。。
これだと

#if APR_POOL_DEBUG

なんて書かれているところにひっかからない・・・。

正しくは、

CPPFLAGS=-DAPR_POOL_DEBUG=0xff ./configure
make
make install

な感じか。

どうも0xffはそれぞれのビットがフラグになってて、何かしらのデバッグを有効にするには
対象のビットを立てないとだめなんじゃない?

apr_pool_check_integrity()という関数を今読んでいるんだけど、

#if (APR_POOL_DEBUG & APR_POOL_DEBUG_LIFETIME)

などが見つかる。

ドキュメントを読めば分かるのかもしれないけど、
多分、
httpd-2.2.8/srclib/apr/memory/unix/apr_pools.cの

418 /*
419 * Debug level
420 */
421
422 #define APR_POOL_DEBUG_GENERAL 0x01
423 #define APR_POOL_DEBUG_VERBOSE 0x02
424 #define APR_POOL_DEBUG_LIFETIME 0x04
425 #define APR_POOL_DEBUG_OWNER 0x08
426 #define APR_POOL_DEBUG_VERBOSE_ALLOC 0x10
427
428 #define APR_POOL_DEBUG_VERBOSE_ALL (APR_POOL_DEBUG_VERBOSE \
429 | APR_POOL_DEBUG_VERBOSE_ALLOC)
430

この辺を指定しなきゃだめなんじゃないかなー。
ざっと眺めた感じではいろいろとPOOL周りのログが出そうな感じ。

APR_POOL_DEBUG_GENERALを有効にしたかったら、

CPPFLAGS=-DAPR_POOL_DEBUG=0x01 ./configure

って感じか。




.

0 コメント: