CGI接口基本上包括将HTTP请求传递给可执行文件的标准输入并在标准输出上获取响应.因此,您可以将测试请求写入文件并手动执行CGI,而无需使用Apache.然后可以使用GDB完成调试:
gdb ./my_cgi
>> break some_func
>> run < my_req.txt
Run Code Online (Sandbox Code Playgroud)
使用包含完整请求的my_req.txt:
GET /some/func HTTP/1.0
Host: myhost
Run Code Online (Sandbox Code Playgroud)
如果您绝对需要由Apache运行CGI,那么将GDB附加到正确的流程可能会变得棘手.例如,您可以将Apache配置为只有一个工作进程,与其连接gdb -p并使用set follow-fork-mode child以确保在请求到达时切换到CGI进程.
| 归档时间: |
|
| 查看次数: |
1921 次 |
| 最近记录: |