zoukankan      html  css  js  c++  java
  • gdb php


    http://www.jb51.net/article/76028.htm

    http://rango.swoole.com/archives/325

    http://phpor.net/blog/post/997

    http://houjixin.blog.163.com/blog/static/35628410201311241916314/


    <?php function test1(){
            while(true){
                  sleep(1);
            }
    }
    test1();
    ?>

    cli方式执行php脚本,加入执行的进程号为14973。我们使用gdb命令来调试进程。


    $sudo gdb -p 14973
    (gdb) print (char *)executor_globals.active_op_array->filename
    $1 = 0x9853a34 "/home/xinhailong/test/php/test.php"
    (gdb) print (char *)executor_globals.active_op_array->function_name
    $2 = 0x9854db8 "test1"
    (gdb) print executor_globals->current_execute_data->opline->lineno
    $3 = 4


    很显然,他正在执行第四行的sleep方法。

    如果上面的方法你感觉麻烦,那你可以使用.gdbinit文件。这个文件在php源码的根目录下。使用方法如下:
    $sudo gdb -p 14973
    (gdb) source /home/xinhailong/.gdbinit
    (gdb) zbacktrace
    [0xa453f34] sleep(1) /home/xinhailong/test/php/test.php:4
    [0xa453ed0] test1() /home/xinhailong/test/php/test.php:7
    (gdb)

    转自:http://www.linuxeden.com/html/news/20160330/165480.html

  • 相关阅读:
    2015年终总结
    mmzb游戏事故分析
    为sproto手写了一个python parser
    Lua小技巧
    Techparty-广州 10 月 31 日 Docker 专场沙龙 后记
    1password密码库格式更新
    SSL加密与系统时间
    webpack的学习使用三
    webpack的学习使用二
    webpack的学习使用一
  • 原文地址:https://www.cnblogs.com/ginkgo-leaf/p/11490424.html
Copyright © 2011-2022 走看看