PHP 打印调用函数入口地址(堆栈),方便调式

2023-05-16

http://blog.sina.com.cn/s/blog_4f9fc6e10100rhn5.html

 

今天网站出现一个BUG,然后直接在数据库类里面写日志,看是哪条SQL出了问题,SQL语句到是找到了,但是不知道这条SQL语句来自何处,于是就想啊,如果能有一个办法,查看当前正在运行的这个方法是被哪个方法调用的,以及上一个方法又是哪个方法调用的,以此类推,找到入口地址多好啊。不过以前自己也想过,也在网上去搜过,就是没有找到相关的办法,今天一同事(前辈)说JAVA里面这种调试用得很普遍,叫这种堆栈调试,我是就在网上搜PHP堆栈。居然被我找到了,然后把自己的办法写出来。
//调用堆栈函数,查找调用函数的源头,方便调试
function print_stack_trace()
{
      $array =debug_backtrace();
    //print_r($array);//信息很齐全
      unset($array[0]);
      foreach($array as $row)
      {
              $html .=$row['file'].':'.$row['line'].'行,调用方法:'.$row['function']."<p>";
      }
      return$html;
}
我在我的数据库的核心查询函数里面调用这个方法,打印结果如下:
D:\wamp\www\meilele\includes\cls_mysql.php:471行,调用方法:query

D:\wamp\www\meilele\includes\cls_mysql.php:507行,调用方法:getAll

D:\wamp\www\meilele\includes\lib_common.php:732行,调用方法:getAllCached

D:\wamp\www\meilele\includes\init.php:113行,调用方法:load_config

D:\wamp\www\meilele\index.php:4行,调用方法:include_once

一目了然,一直找到了入口,太强悍了。以后调试又多了一种办法


或者用下面的方法:

$e = new Exception;
var_dump($e->getTraceAsString());





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 打印调用函数入口地址(堆栈),方便调式 的相关文章

  • 使用 PHP 中的 GD 库在图像上绘图

    我创建了一个代码来生成随机图案图像 它创建一个具有给定宽度和高度的图像 并用 40x40 像素的小矩形填充它 这是我的代码
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子
  • 更改 Woocommerce 中“我的帐户”页面上的标题

    我见过大量有关如何使用 WooCommerce 我的帐户仪表板重新排序 更改导航和页面的示例 但我一生都无法弄清楚如何更改每个部分的主要标题 我的帐户 订单 下载 地址等 我已经搜索过模板 但没有任何乐趣 我尝试使用条件 php 注释来回显
  • 正则表达式上的换行符

    我试图替换两个标签之间的所有内容 但我无法构建正确的表达式 这就是我所做的
  • Symfony2:为什么请求传递到受 Symfony2 中 AppCache 影响的 Kernel.Terminate EventListener

    在我的 Symfony2 2 应用程序中 我使用 onKernelTerminate EventListener 以便我可以在渲染响应后进行一些 繁重 处理 以便用户收到更快的响应时间 在我的控制器中 我在请求上设置了一个属性 以便当事件侦
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • 简单的 PHP 回显代码不起作用

    这是我的 html 和 php 脚本 h1 Bob s Auto Parts h1 table width 100 tr tr table 为什么这个输出会出现一个 gt 我希望它是 这有效 仅有的 这是输出 鲍勃的汽车零件 鲍勃
  • php源代码到PO文件生成器

    我必须将我的所有回显 打印字符串转换为PHP源代码代码文件到PO file 为了语言翻译 有批次吗对流器可用于相同的 我如何做到这一点 make gettext在您的服务器上运行 setup a 翻译适配器 例如带有 gettext 适配器
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • 使用 PHP Selenium Webdriver 单击下拉菜单中的选项?

    我正在使用 PHP Selenium Webdriver 包装器Facebook https github com facebook php webdriver 任何人都可以给我一个如何单击或从选择下拉菜单中选择选项的示例吗 我已经尝试过这
  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • 在 WooCommerce 中添加到购物车之前清空购物车

    我正在使用 WP 作业管理器和 Woo Subscriptions Now 最初 我选择了一个套餐 Woo Subscription 然后我添加了所有细节 但没有提交 回到网站 所以要再次购买 我需要选择一个套餐 于是我选择了套餐并填写了详
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 如何将 Smarty 3 包含到 Laravel 4 中?

    我是 Laravel 的新手 所以仍在习惯这些概念 但是我有大约 10 年的使用 Smarty 的经验 所以我希望利用这一点 除了事实上 Blade 似乎缺乏太多我发现有用且在 Smarty 中开箱即用的功能 但无论如何除了这个问题的要点之
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for

随机推荐

  • 《五天学会绘画》阅读感受(全,附绘画作品)

    五天学会绘画 http product dangdang com product aspx product id 61 20920637 xff0c 一个无比俗气的中文名 xff08 这本书的英文名字靠谱多了 xff1a The New D
  • 网络时代购买书

    一直很喜欢看书和买书 xff0c 从大学算起买书的钱都相当于现在一个月的工资了 但在这个年代有这么多的出版刊部 xff0c 应该怎么购买实体书呢 xff1f 下面是我总结的一些经验 xff1a 1 逛书店 这是我的一个特殊爱好 xff0c
  • 冰箱中得到的启示

    周末回到家中 xff0c 听到老妈对着冰箱抱怨 xff1a 冰箱又塞满了 xff0c 老妈对着满冰箱的食物左右为难 xff0c 不知道应该把哪些食物哪出来 这使我想起了一位朋友 xff0c 那时我买了一个160G的移动硬盘 xff0c 我朋
  • Andorid Ubuntu 11.4 中安装sun-java5-jdk

    终于找到了能安装jdk5的sources xff01 xff01 xff01 出处 xff1a http hi baidu com panda heroes blog item ebb4e72b88ac2c4a4ec2267e html 由
  • Ubuntu Linux下设置IP的配置命令

    出处 xff1a http www cnblogs com empire archive 2011 01 10 1931877 html 今天装了Ubuntu xff0c 但是发现不能上网 xff0c 开始排查问题 xff1a 1 首先确定
  • ubuntu设置ip和dns

    出处 xff1a http wenku baidu com view 3c587d370b4c2e3f5727634c html 装完ubuntu 第一件事情就是连上网 xff0c 换个源 xff0c 进行更新操作 xff0c 但前提条件是
  • 模电,没有你想象的那么难。

    无意中看到这个文章 xff0c 虽然自己也搞了4年模电了 xff0c 但后看完之后发现自己原来根本就没有入门阿 xff01 现发上来和大家共享 xff01 复旦攻读微电子专业模拟芯片设计方向研究生开始到现在五年工作经验 xff0c 已经整整
  • ubuntu 下用xampp配置虚拟站点

    1 编辑 opt lampp etc httpd conf a lt Directory gt Options FollowSymLinks AllowOverride all XAMPP Order deny allow Deny fro
  • Ubutu 10.10 配置ftp服务器

    出处 xff1a http blog csdn net jiabangok article details 6412742 配置FTP环境 配置好FTP还是非常有必要的 那么就开始配置FTP吧 xff0c 我的Ubuntu Server使用
  • Ubuntu 11.04下安装SVN图形界面客户端

    1 安装svn客户端 xff1a sudo apt get install subversion 2 安装图形界面客户端Rabbitvcs xff1a xff08 1 xff09 下载 http rabbitvcs googlecode c
  • ubuntu 11.04 安装gvim

    折腾了N久 xff0c 终于安装成功了 1 在www vim org上 下载 源码包 vim 7 3 tar bz2 2 开发库libncurses5 dev安装 xff1a sudo apt get install libncurses5
  • 解决安装magento时“Unable to read response, or response is empty” 的错误

    在安装magento时有时会出现 Url http 79 170 40 182 cosmeticsfairy co uk magento is not accessible Unable to read response or respon
  • Magento Enterprise Full Page Caching

    出处 xff1a https aniscartujo com webproxy default aspx prx 61 http magentophp blogspot com 2011 02 magento enterprise full
  • linux压缩和解压缩命令大全

    tar 解包 xff1a tar zxvf FileName tar 打包 xff1a tar czvf FileName tar DirName gz 解压1 xff1a gunzip FileName gz 解压2 xff1a gzip
  • SQL养成一个好习惯是一笔财富

    出处 xff1a http topic csdn net u 20110928 13 546b917a c048 4a04 8423 6f093596d3cd html 我们做软件开发的 xff0c 大部分人都离不开跟数据库打交道 xff0
  • 清除目录下的SVN信息

    出处 xff1a http apps hi baidu com share detail 21551981 在项目开发和日常文档管理时 xff0c 用到了SVN xff0c 由于要把一些文档发给同事 xff0c 这时想删除SVN版本信息文件
  • magento下生成excle文件方法

    注意 xff0c 这种方法本质上是生成xml文件 xff0c 但excel是能打开这种xml格式 xff0c 以下是一个demo xff1a data 61 array array 39 name 39 39 birthday 39 arr
  • 为什么电子通信,嵌入式工程师会有中年危机(修订版)

    中年危机在IT圈是个老生常谈的词了 xff0c 火哥第一篇文章也给大家分享这个话题 xff0c 当然火哥不是一个俗套的人 xff0c 就不去说一些不断学习 xff0c 提升技能的鸡汤了 我们先追本溯源地发现电子通信 xff0c 嵌入式工程师
  • BMI055编程

    BMI055与其他imu不同的地方是他的加速度硬件单元和陀螺仪硬件单元是分开独立的 xff08 两个不同的CHIPID xff09 xff0c 他们使用两个不同的片选 xff0c 地址空间重叠 一般的imu如 mpu6050 mpu6500
  • PHP 打印调用函数入口地址(堆栈),方便调式

    http blog sina com cn s blog 4f9fc6e10100rhn5 html 今天网站出现一个BUG xff0c 然后直接在数据库类里面写日志 xff0c 看是哪条SQL出了问题 xff0c SQL语句到是找到了 x