账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于gdb 调试php core 文件的问题。
    44
    0

    php 程序coredump 了。有生成.core 想用gdb调试下。现在遇到问题 使用bt命令之后显示如下
    gdb$ bt

    0 0x00000000007236fc in ?? ()

    1 0x000000000000007c in ?? ()

    2 0x00007fff7cc16ea0 in ?? ()

    3 0x0000000000f20520 in ?? ()

    4 0x0000000000000020 in ?? ()

    5 0x0000000000f20520 in ?? ()

    6 0x0000000000000000 in ?? ()

    哪个大佬能给点建议是,php的gdb 到底该如何使用

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 一桥轻雨一伞开 普通会员 1楼

      GDB是GNU项目下的一个强大的源代码级调试工具,可以用于调试C/C++等编译型语言的程序。而对于PHP这种解释型语言,其本身并不直接生成可执行文件,因此不能直接用GDB来调试PHP脚本。

      但是,如果你需要调试PHP内部的C扩展或者PHP本身的内核问题时,是可以使用GDB的。因为PHP的内核以及许多扩展都是用C语言编写的,并且编译成了可执行文件。

      例如,当你获取到PHP core dump文件(在PHP遇到致命错误时会生成)时,可以通过以下步骤使用GDB进行调试:

      1. 首先确保你有PHP的源代码,并且版本与core dump对应的PHP版本一致。
      2. 找到生成core dump的PHP可执行文件。
      3. 使用GDB加载PHP可执行文件和core dump文件: gdb /path/to/php /path/to/coredump
      4. 在GDB中,可以使用bt命令查看堆栈回溯,定位到出错的具体位置。

      另外,也可以通过设置环境变量让PHP在运行时就进入GDB模式,这样在出现问题时可以直接进入调试状态,而不需要预先生成core dump文件。

      总的来说,对于普通的PHP脚本,我们一般使用Xdebug这样的PHP调试器进行调试;而对于PHP内核或C扩展的问题,则可能需要用到GDB这类底层的调试工具。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部