【发布时间】:2012-01-13 13:18:39
【问题描述】:
操作系统:ubuntu 11.10 网络服务器:阿帕奇 代码:PHP
您好,我正在尝试通过 PHP 网页“执行”C 代码。当我直接在终端上运行相同的 C 代码时,它工作正常,但是当我通过 PHP “执行”它时,我得到一个分段错误。
知道为什么会有这种行为吗?我的 C 代码在几个地方做小的“malloc”。代码在使用 ./a.out 直接通过终端执行时也能正常工作
当 PHP 尝试执行 C 代码时,我有办法 gdb 吗?
谢谢
【问题讨论】:
-
您可以将 gdb 附加到正在运行的进程,但如果它运行得很快就很难了。更好的解决方案是确保当程序崩溃时,它会生成一个核心转储,gdb 可以使用该转储来帮助调试。
-
@Joachim 如果您在附加调试器之前遇到程序死机的问题,并且相对简单,只需创建一个显式设置为 1 的局部标志变量,然后放入类似 while (var) sleep( 1);自旋环。附加调试器后,您可以将变量设置为 0,程序将继续运行。
标签: php c apache gdb segmentation-fault