Apacheをシングルプロセスで立ち上げる
Apache ハンドラーを開発しているときなど、httpd を 直接 gdbにかけたい場合、シングルプロセスで起動するとデバッグしやすい。
具体的には下記のように、「-X」オプションをつけて、apacheを起動します。
$ sudo gdb httpd
gdb > run -X -f /etc/httpd/conf/httpd.conf
gdb > run -X -f /etc/httpd/conf/httpd.conf
ブレークポイントをソース中に設定する
gdbで、”’break 30”’とかやってもいいが、ソース中でbreak pointを設定することもできる。
特定の条件下の場合のみbreakさせたい場合などに便利。
signal.hをincludeしてSIGTRAPを投げるとbreakする。
サンプルコード
#include <stdio.h>
#include <signal.h>
int main() {
printf("a\n");
raise(SIGTRAP);
printf("b\n");
return 0;
}
参考書籍
| Apache モジュールプログラミングガイド | GDBハンドブック |
参考ページ
- いやなブログ
http://0xcc.net/blog/
