- 论坛徽章:
- 0
|
本帖最后由 wsyueshuai 于 2010-03-02 22:29 编辑
刚才在一个日本的网站上找到可行方案了,写出来大家可以参考一下。
1,在main函数头加个sleep函数
例如:
void main (int argc, char *argv[])
{
sleep(20);
...
}
2,加上 -g 重新编译
3,为了防止CGI的TIMEOUT,在GDB里执行:handle SIGPIPE nostop nopass
以上步骤做完后,准备工作完了
4,像正常一样从浏览器上启动CGI程序
5,因为在main里加了sleep的缘故,程序会停住。
6,在终端里运行:ps -auxw | grep [CommandName]
CommandName为CGI程序的名字吧,我也不确定
7,6执行后会取得你在浏览器上运行的那个CGI程序的processID(PID),
PID取得后,在GDB中运行:attach [pid]
[]里的pid为6步骤里取得的processID
8,然后就可以像通常那样调试了。
补足:在emacs里启动GDB会更方便吧,可以一边看着程序一边看着GDB的输出
引用自:http://www.toshikazu.org/archives/000020.html |
|