php - 如何使用 exec() 调试从 php 调用的 C++ 代码

标签 php c++ eclipse debugging gdb

我正在使用“exec”在我的 php 应用程序中调用一些 C++ 代码,如 in this tutorial. 所述我试图弄清楚如何在执行后调试 C++ 代码。 C++ 应用程序启动和结束的速度比我使用例如 eclipse 附加到进程的速度快。 一旦使用 exec() 从 php 应用程序调用 c++ 代码,有什么想法可以调试吗? 我在使用 eclipse 和 GDB 的 linux 上。

php 应用程序工作流程如下: 从 html 表单获取值,将这些值传递给使用 exec() 调用的 c++ 代码,从 c++ 获取输出,然后使用 php 将其显示到 html 上。将其视为 php 是 Controller ,c++ 是模型。

最佳答案

实际上首先取决于您如何使用 php 代码。如果您正在使用 PHP 生成网页,并且在生成 HTML(或其他)的中间执行一些 C++ 代码,那么这有点棘手。如果您使用命令行运行 PHP,您只需将 $command"myprog arg1 arg2 更改为 "gdb --args myprog arg1 arg2" - 这将启动调试器 gdb 而不是仅仅运行“myprog”。

如果你不能调试实际的应用程序(因为“myprog”的输出是你网页的一部分,例如),那么我会简单地运行 $ gdb --args myprog arg1 arg2 在机器上的命令行上,并独立调试代码。

或者,如果您必须将其作为网络应用程序的一部分进行调试,您可以将 sleep(10); 添加到“myprog”的开头,并使用 gdb附加 X 其中 X 是进程 ID(例如来自 topps aux | grep myprog)- 在 sleep 之后设置一个断点(10); 行,然后执行 gdb 命令 continue

关于php - 如何使用 exec() 调试从 php 调用的 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353116/

相关文章:

php - 在 codeigniter php 中将博客页面标题显示为 url

php - wamp 服务器中错误的 PHP date() 输出

c++ - 是否可以将 gsl_matrix 存储在 C++ vector 中?

eclipse - 隐藏的键绑定(bind)(?)

eclipse - 是否有用于在 m4 中开发的 eclipse 插件?

php - 缺少 Google API autoload.php

php - 实现 LDAP 合规性

c++ - LDSET ARM 指令作为内联汇编

c++ - 请先实例化 QApplication 对象

java - Eclipse 没有启动