PHP 使用 debug_print_backtrace() 或 debug_backtrace() 打印栈轨迹
<?php
/* 使用debug_print_backtrace() 或 debug_backtrace() 打印栈轨迹 */
function fun1() {
print "Hello world!\n";
fun2();
}
function fun2() {
Class1::fun3();
}
Class Class1 {
static function fun3() {
$class2 = new Class2();
$class2->fun4();
}
}
class Class2 {
function fun4() {
debug_print_backtrace();
$backtrace = debug_backtrace();
echo '<pre>';
print_r($backtrace);
}
}
fun1();
输出:
Hello world!
#0 Class2->fun4() called at [D:\wamp\www\practise\php\phpcookbook\error\track.php.php:17]
#1 Class1::fun3() called at [D:\wamp\www\practise\php\phpcookbook\error\track.php.php:11]
#2 fun2() called at [D:\wamp\www\practise\php\phpcookbook\error\track.php.php:7]
#3 fun1() called at [D:\wamp\www\practise\php\phpcookbook\error\track.php.php:30]
<pre>Array
(
[0] => Array
(
[file] => D:\wamp\www\practise\php\phpcookbook\error\track.php.php
[line] => 17
[function] => fun4
[class] => Class2
[object] => Class2 Object
(
) [type] => ->
[args] => Array
(
)
) [1] => Array
(
[file] => D:\wamp\www\practise\php\phpcookbook\error\track.php.php
[line] => 11
[function] => fun3
[class] => Class1
[type] => ::
[args] => Array
(
)
) [2] => Array
(
[file] => D:\wamp\www\practise\php\phpcookbook\error\track.php.php
[line] => 7
[function] => fun2
[args] => Array
(
)
) [3] => Array
(
[file] => D:\wamp\www\practise\php\phpcookbook\error\track.php.php
[line] => 30
[function] => fun1
[args] => Array
(
)
)
)
参考:
<PHP Cookbook>3'rd
PHP 使用 debug_print_backtrace() 或 debug_backtrace() 打印栈轨迹的更多相关文章
- Java异常的栈轨迹fillInStackTrace和printStackTrace的用法
本文转自wawlian 捕获到异常时,往往需要进行一些处理.比较简单直接的方式就是打印异常栈轨迹Stack Trace.说起栈轨迹,可能很多人和我一样,第一反应就是printStackTrace()方 ...
- 基础知识《十四》Java异常的栈轨迹fillInStackTrace和printStackTrace的用法
本文转自wawlian 捕获到异常时,往往需要进行一些处理.比较简单直接的方式就是打印异常栈轨迹Stack Trace.说起栈轨迹,可能很多人和我一样,第一反应就是printStackTrace()方 ...
- Linux下追踪函数调用,打印栈帧
事情的起因是这样的,之前同事的代码有一个内存池出现了没有回收的情况.也就是是Pop出来的对象没有Push回去,情况很难复现,所以在Pop里的打印日志,跟踪是谁调用了它,我想在GDB调试里可以追踪调用的 ...
- linux内核中打印栈回溯信息 - dump_stack()函数分析【转】
转自:http://blog.csdn.net/jasonchen_gbd/article/details/45585133 版权声明:本文为博主原创文章,转载请附上原博链接. 目录(?)[-] ...
- Atitit java的异常exception 结构Throwable类
Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...
- Java异常的面试问题及答案-Part 1
本文由 ImportNew - 韩远青 翻译自 Journaldev. Java提供了一个健壮的.面向对象的方法来处理出现异常,称为Java异常处理.我以前写过一篇长文章来介绍Java异常处理,今天我 ...
- 给Lisp程序员的Python简介
给Lisp程序员的Python简介 作者:Peter Norvig,译者:jineslong<zzljlu@gmail.com> 这是一篇为Lisp程序员写的Python简介(一些Pyth ...
- java 异常处理机制(java 编程思想)
一.概念 "异常"这个词有"我对此感到意外"的意思.问题出现了,你也许并不清楚该如何处理,但你的确知道不应该置之不理:你要停下来,看看是不是有别人或在别的地方, ...
- 《Thinking In Java》阅读笔记
<Thinking In Java>阅读笔记 前四章:对象导论. 一切都是对象. 操作符. 控制执行流程 public在一个文件中只能有一个,可以是一个类class或者一个接口interf ...
随机推荐
- python function parameter
Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] on linux2 Type "copyright&q ...
- android studio--百度定位集成001
安卓现在的大趋势已经是普遍使用androidstudio(安装包[https://yunpan.cn/ckc54idj3JVJb 访问密码 664f])了.这个是集成的一个好的环境. 今天来搞个百度 ...
- InnoDB全文索引:N-gram Parser【转】
本文来自:http://mysqlserverteam.com/innodb%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95%EF%BC%9An-gram-parser/ In ...
- 数据库基础和JDBC
一SQL查询 练习: 1.在grade表中查找80-90分的学生学号和分数 select studentid 学号,score 分数 form grade where socre between 80 ...
- Sublime 3 如何设置xftp 保存自动上传
采用sublime SFTP插件,直接保存CentOS服务器的NodeJS文件,这样调试起来很方便,当然得配上 一直采用File -> SFTP/FTP -> Setup Se ...
- webservice发布服务:AXIS2及客户端调用
1.Axis2: 到官网下载axis2的压缩包. 解压后: 1.将lib文件下的jar包复制到项目中 2.在web-inf下创建services->META-INF->services.x ...
- 第一个JSP
还是大一暑假学的Java,知识掌握了第一阶段的Java基础知识, 后面想自己进阶第二阶段,学习JavaWeb,一直拖到现在直接从Java第二阶段写了~~~ 希望指正: 这次主要还是第一个Hello W ...
- 第一天:安装nodejs
1.首先,下载NodeJs程序.地址 http://www.nodejs.org/download/,选择Windows Installer 64bit 2.下载下来后,狂点下一步,安装在本地硬盘上. ...
- [Android Pro] 常用的android工具类和库
reference to : http://blog.csdn.net/lovexieyuan520/article/details/50614086 这篇博客主要记录我认为比较有用的Android ...
- TCP与UDP的区别
TCP与UDP的区别 TCP面向连接:UDP是无连接,即发送数据之前不需要建立连接 TCP提供可靠的服务,TCP连接传送的数据,无差错.不丢失.不重复,且按顺序到达:UDP尽最大努力交付,即不保证可靠 ...