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

标签 c eclipse apache gdb cgi

我有一个用 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/

相关文章:

c++ - 代码依赖文档软件

eclipse - 从 Eclipse 启动终端

ruby-on-rails - Apache2 错误 : Either the vistor clicked on the 'Stop' button in the web browser

php - Apache 错误中的 rApache 模块

c - 对于为什么这些程序在 Windows 和 Linux 上运行不同的原因有什么直觉或见解吗?

c - 使用位值进行 Base3 编码

android - 制作 Http Get 和 Post 请求

xml - Tomcat 5.5 - 你如何将 "unpackWARs"到/webapps 以外的位置?

C语法解释

java - Eclipse 输出文件夹