如何调试用C编写并在Apache2中运行的cgi程序?

我有一个用C编写的复杂cgi可执行文件,我在Apache2中配置,现在它成功运行.如何在源代码中调试此程序,例如设置断点和检查变量?像gdb或eclipse这样的工具?有关如何设置调试环境的任何教程?

提前致谢!!

最佳答案
CGI接口基本上包括将HTTP请求传递给可执行文件的标准输入并在标准输出上获取响应.因此,您可以将测试请求写入文件并手动执行CGI,而无需使用Apache.然后可以使用GDB完成调试:

gdb ./my_cgi
>> break some_func
>> run < my_req.txt

使用包含完整请求的my_req.txt:

GET /some/func HTTP/1.0
Host: myhost

如果您绝对需要由Apache运行CGI,那么将GDB附加到正确的流程可能会变得棘手.例如,您可以将Apache配置为只有一个工作进程,使用gdb -p附加到它,并使用set follow-fork-mode子进程确保它在请求到达时切换到CGI进程.

转载注明原文:如何调试用C编写并在Apache2中运行的cgi程序? - 代码日志