昨天在远程调试时,刚开始调试的好好的,突然发现返回的结果变成502了,不对呀!刚刚明明是200的呀!然后我重启了nginx和php-fpm,还是一样的502,难道是代码又有bug了。看了下php-fpm的日志,发现没有任何的出错记录,调试时就是直接断掉,返回个502,什么原因呢?

这时请教了龙哥,在服务器端跟踪php-fpm进程执行时的系统调用和所接收的信号。

首先把php-fpm的进程数量设置为1个,这样就找到是哪个进程处理了cgi请求。

设置好后重启php-fpm服务。

重启后找出那个php-fpm进程的进程号。

然后用gdb调试这个进程。

这时先不设置断点,让程序在IDE中直接一步一步地运行下去,看是在哪个地方出错了。

在代码出错的那一行设置个断点,下次可以直接运行到断点处。

运行完后,就可以看得到出错的地方,先记下这个出错的函数,下次运行时设置断点需要用到(注意:xdebug的断点和gdb的断点是不同的)。

这时,再看一下php-fpm的进程池,发现原来的那个进程的进程号变了,是因为原本的进程挂掉了,主进程又新开了一个子进程。

在Fillder中replay上次的那个请求,等运行到IDE的断点处,再打开gdb,在gdb中设置断点,输入c继续运行。

在IDE中继续运行,这时程序出错了,在gdb中输入bt查看堆栈

在堆栈里可以看到,在用xdebug调试时,是先运行xdebug扩展模块的代码,再运行了原本的php代码。

我在调试时,设置了一个查看的变量,这个变量在运行到这个方法时是一个对象,而我是以数组的方式来读取的,所以语法是有错误的,所以整个http请求返回了错误。由于这是xdebug的错误,所以不使用xdebug调试来运行代码时,返回的数据是正常的。

在找到问题的原因后,我在别的方法内设置了断点,调试时直接跳过这个方法,虽然还是查看同一个变量,但是没有出错。

转载于:https://www.cnblogs.com/lihuobao/p/8086438.html

xdebug调试时出错 --mxp相关推荐

  1. 3、【Xilinx下载器】【ILA】使用ILA调试时出错的解决方案

    问题描述 有的用户在使用下载器调试带有ILA的工程时,出现某些异常情况,目前已知的异常有: (1)下载过程中报错,而且底部Tcl Console出现大量报错信息 Tcl报错信息,从第三行可知,系统提示 ...

  2. 试图运行项目时出错,无法启动调试。没有正确安装调试器,请运行安装程序安装或恢复调试器。...

            用Visual Studio.net 2003调试项目时,出现错误对话框,显示如下:         试图运行项目时出错,无法启动调试.没有正确安装调试器,请运行安装程序安装或恢复调试 ...

  3. vs2008调试c#网页时出现“加载配置文件时出错: 未能映射路径'/' 错误 .

    win7 64位 下vs2008调试c#网页时出现"加载配置文件时出错: 未能映射路径'/' "错误 . 解决办法:右键点击vs2008快捷方式,选择属性,然后选择"兼容 ...

  4. VS.NET提示试图运行项目时出错:无法启动调试。绑定句柄无效解决办法

    也许是我迟发现了,总之我是刚刚才遇到这个问题的,挺不爽的,从模板新建的项目,未添加一行代码却出现了调试错误.(不用调试倒没事)有点郁闷. 还好,(感谢一下发明搜索引擎的人)百度给了我解决方案,不好意思 ...

  5. “项目运行时出错,无法启动调试。绑定句柄无效”的解决办法

    突然发现VS2005简体中文版不能调试,提示:"项目运行时出错,无法启动调试.绑定句柄无效."  结果重装.NET2.0也无效,又重装VS2005一次也无效,费了很大的周折,终于在 ...

  6. Visual Studio 2005 提示“试图运行项目时出错:无法启动调试。绑定句柄无效”~[解决方案]...

    如果VS提示"试图运行项目时出错:无法启动调试.绑定句柄无效"时, 解决方案有两种: 一.将项目属性里调试 --〉取消 启用 Visual Studio 宿主进程 二.将Termi ...

  7. 启动VS2005调试器时出错: 绑定句柄无效

    用VS2005新建了一个WINDOWS应用,运行F5就出现"试图运行项目时出错:无法启用调试.绑定句柄无效." 解决方法如下 将工程属性->调试->启用VISUAL S ...

  8. 试图运行项目时出错,无法启动调试,绑定句柄无效.

    C#2005学习版写应用程序的时候,出现:试图运行项目时出错,无法启动调试,绑定句柄无效. 这主要是由于terminal Services没有启动 运行[Services.msc]改变[termina ...

  9. 试图运行项目时出错,无法启动调试。没有正确安装调试器--很多次都是上网找了很多资料,都很难解决

    试图运行项目时出错,无法启动调试.没有正确安装调试器.请运行安装程序安装或修复调试器 收藏 对于这样的问题,出现很多次,很多次都是上网找了很多资料,都很难解决,只好重装IIS或者是.NET. 通过网上 ...

最新文章

  1. 四十六、文件系统的层次结构
  2. 《深入浅出Ext JS》(第2版)即将上市
  3. POJ3277 线段树段更新,点询问+二分离散化+暴力
  4. 如何建设移动 DevOps?
  5. 使用数组操作解码YOLO Core ML对象检测(三)
  6. 竖流式沉淀池集水槽设计计算_竖流沉淀池计算书
  7. 用DELPHI为ASP开发文件上载组件
  8. JS调用ATL DLL
  9. spring boot项目报错:Validation failed for query for method public abstract...
  10. k-最近邻聚类k-Nearest Neighbor
  11. PVCBOT【27号】机械避役--线控变色龙机器人
  12. 你了解PMP考试新考纲的内容吗?
  13. cesium着色器学习系列2-Appearance对象
  14. LaTex(Texshop)的入门(一)(此篇有关中字字符的编译,格式的初步编排)
  15. Opencv学习笔记——opencv配置安装与IDE环境安装
  16. 屌炸天的内核来袭,史上最小chromium内核miniblink!
  17. 地级市固定资产投资和对外经济贸易指标
  18. 一棵树是否为另一棵树的子树
  19. Android动画特效之自定义View
  20. 计算机专业作品验收,项目教学的具体实践与验收评价

热门文章

  1. 最简单红米手机如何没root激活XPOSED框架
  2. 零基础入门│带你理解Kubernetes
  3. C#配置IIS搭建网站的工具类
  4. 11.排序算法_1_快速排序
  5. Elasticsearch —— bulk批量导入数据
  6. memcache 防火墙策略
  7. How to set a timeout with AFNetworking
  8. 使用ISAPI_Rewrite对asp.net实现URL重写伪静态
  9. php软件开发--redis操作
  10. web管理 pdo-mysql_PHP重新安装启用PDO扩展和PDO_MySQL扩展