[平常文章]xdebug的原理和运行机制

xDebug

1、 背景介绍

Xdebug 工具咱们既熟悉,又陌生,熟悉是由于,咱们只须要简单的配置就可使用了。 陌生是他怎么通讯的,以及在后续怎么在不一样环境,如linux环境,docker环境怎么调试的,而且怎么跟docker环境进行整合的。php

1.1 目标: 了解xdebug的原理和运行机制

1.2 目的:解决windows,mac,docker等不一样环境的xdebug的使用问题

2、 Xdebug的原理

2.0 xdebug的相关资料

  • XDEBUG 从入门到精通,查看html

  • Xdebug原理学习及其攻击面复现,查看java

  • xdebug,How Xdebug Changed My Life:xdebug的使用和配置,查看linux

    PhpStorm Xdebug远程调试环境搭建原理分析及问题排查,[查看]([xxlegend.com/2017/05/23/…](xxlegend.com/2017/05/23/… Xdebug远程调试环境搭建原理分析及问题排查/))c++

    Xdebug: 协助调试与开发 ,查看git

2.1 xdebug 怎么跟PHP进行通讯的?

  1. 查看监听的端口号是否创建链接?

![image-20190713164029286](/Users/Macx/Library/Application Support/typora-user-images/image-20190713164029286.png)github

  1. 那从用户发起请求到,到IDE的整个流程图以下:docker

  2. 使用wireshark抓取xdebug和php的通讯的数据包segmentfault

    使用Wireshark抓取PHP Server [PSH,ACK]的消息 (过滤条件:tcp.port==9000 && tcp.flags.push == 1)windows

2.2 xdebug 的总体流程是怎么样的?

2.3 phpstorm 是怎么跟xdebug进行通讯/集成的?

  • 参考文档:Xdebug远程调试原理与实践,查看

2.4 xdebug 怎么来支持docker和linux的环境的调试操做

  • Docker 下的PHPSTORM+XDEBUG ,查看

2.5 xdebug的DBGB协议是怎么回事? 查看

2.6 xdebug 经常使用的交互界面

  • Xdebug 提供的默认的dbgb界面。 详见:dbgp/dbgpclient.php

  • PHPStorm 的调试界面

2.7 能够与PHPUNIT的整合,进行单元测试环境的调试

3、 其余语言的调试工具

基本上每一个语言都有其调试的工具,那其余的语言的调试工具和原理是什么,是怎么来通讯的?

如java, c++, Go等语言的调试工具的构建

4、 待研究的地方

4.1 奇怪的问题:PHPStorm XDebbug链接但未中止,查看

相关文章
相关标签/搜索