• 技术文章 >PHP >PHP教程

    php方法断点如何实现

    小妮浅浅小妮浅浅2021-06-19 10:08:14原创5846

    1、使用 phpdbg_break_function()来给这个testFunc() 方法设置一个断点。当代码中调用这个函数的时候,就会进入这个断点中。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    prompt> r

    [Breakpoint #0 in testFunc() at /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php:11, hits: 1]

    >00011: function testFunc(){

     00012:     global $i;

     00013:     $i += 3;

      

    prompt> s

    [L12         0x109eef620 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    >00012:     global $i;

     00013:     $i += 3;

     00014:     echo "This is testFunc! i:" . $i, PHP_EOL;

      

    prompt> s

    [L12         0x109eef640 BIND_GLOBAL             $i                   "i"                                       /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    [L13         0x109eef660 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    >00013:     $i += 3;

     00014:     echo "This is testFunc! i:" . $i, PHP_EOL;

     00015: }

    2、直接进行了两次 s 单步,可以看到 global $i 对应的 opcode 操作是 BIND_GLOBAL 。继续向下操作。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    prompt> s

    [L13         0x109eef680 ASSIGN_ADD              $i                   3                                         /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    [L14         0x109eef6a0 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    >00014:     echo "This is testFunc! i:" . $i, PHP_EOL;

     00015: }

     00016:

      

    prompt> s

    [L14         0x109eef6c0 CONCAT                  "This is testFunc!"+ $i                   ~1                   /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    [L14         0x109eef6e0 ECHO                    ~1                                                             /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    This is testFunc! i:4

    [L14         0x109eef700 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    [L14         0x109eef720 ECHO                    "\n"                                                           /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

      

    [L15         0x109eef740 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

    >00015: }

     00016:

     00017: testFunc();

    以上就是php方法断点的实现,大家学会后也赶快尝试下实例操作吧。更多php学习指路:php教程

    推荐操作系统:windows7系统、PHP5.6、DELL G3电脑

    专题推荐:php方法断点
    上一篇:php命令行中进行断点 下一篇:php中Suhosin是什么

    相关文章推荐

    • php架构师是做什么的• php框架有哪些• php数组函数有哪些• php数组转字符串• php上传文件代码• PHP中define定义常量的方法• PHP使用fread()操作字节• php常见运行模式详解• php中PDO库是什么• php PDO运行查询的方法• php PDO的预处理语句有哪些• php中PDO获取关联数组• php之phpstorm自动代码补全的使用

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网