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 ...
随机推荐
- Wireshark抓包工具
首先下载并安装Wireshark软件,最好选择中文版,因为会使你用的更顺手. 安装完毕之后,双击打开Wireshark软件,主界面还是比较清晰明了的,可是怎么用还是稀里糊涂的吧. 点击菜单栏红圈中的选 ...
- NOIp2014 解题报告
有史以来第一届面向社会征题的NOIp结束了.最开始以为面向社会征题会很难,但是这是我参加的最水的一次NOIp了. 由于停了两月的课,所以现在正在补文化科目就没时间打代码了.所以所有的题目就均不给出代码 ...
- Collection接口
Collection接口所定义的方法: clear:清空 retainAll 求一个Collection和另一个 Collection的交集. object[] toArray() 把里面的各个对象 ...
- ecshop商品子分类点击下拉,子分类空时,直接跳转功能
模板文件循环读取商品分类,并给大分类加上url属性.然后在js中判断是否有下级分类.有分类则点击下拉效果,没有子分类则跳转到url属性的链接去. themes/**/library/category_ ...
- css3美化复选框checkbox
两种美化效果如下图: 代码(html) <div id="main"> <h2 class="top_title">使用CSS3美化复 ...
- java26
1:网络编程(理解) (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享 (2)网络编程模型 (3)网络编程的三要素 A:IP地址 ...
- Linux压缩和解压汇总
各种后缀的压缩包压缩方法和解压方法 压缩包 压缩 解压 .tar.gz和.tgz tar -czf jpg.tar.gz *.jpg tar -xzvf filename -C path .tar.b ...
- 【YEOMAN】执行yo命令,报EACCES: permission denied, mkdir '/root/.config/configstore'
基础环境:CentOS7.Nodejs6.0之上,yo:1.8.4 在执行yo初始化webapp时,报错,错误内容如下: Error: EACCES: permission denied, mkdir ...
- nginx和rewrite的配置
测试ok 具体参见 http://www.ccvita.com/348.html
- sql server 中不同服务器上的数据库中表怎么互导数据
--创建一个链接 EXEC sp_addlinkedserver 'OtherServerDb','','SQLOLEDB','192.168.12.101' --第一个参数是给远程的服务器起的别名 ...