我有一个用 C 编写的复杂的 cgi 可执行文件,我在 Apache2 中配置,现在它运行成功。如何在源代码中调试这个程序,比如设置断点和检查变量?任何工具,如 gdb 或 eclipse?有没有关于如何设置调试环境的教程?
提前致谢!
最佳答案
CGI 接口(interface)基本上包括将 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 child
确保它切换到请求到达时的 CGI 处理。
关于c - 如何调试用C编写并运行在Apache2中的cgi程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400466/