paip. 调试技术打印堆栈 uapi print stack java php python 总结.

作者Attilax  艾龙,  EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax

---------uapi
打印堆栈:printStack    god.printstack()
得到堆栈String:getStack

----------------php,
debug_print_backtrace(),加入error line的前面行上...
保存stack到文件:print_r(debug_backtrace());

C:\phpdeskc9>D:\wamp\php\php.exe  E:\DedeCMS-V5.7-UTF8-SP1-Full\uploads\del_some
_dir.php E:\OfflineExplorerPortable\Download budejie,xiaohua
#0  c() called at [E:\DedeCMS-V5.7-UTF8-SP1-Full\uploads\del_some_dir.php:31]
#1  b() called at [E:\DedeCMS-V5.7-UTF8-SP1-Full\uploads\del_some_dir.php:27]
#2  a() called at [E:\DedeCMS-V5.7-UTF8-SP1-Full\uploads\del_some_dir.php:38]

Fatal error: Call to undefined function d() in E:\DedeCMS-V5.7-UTF8-SP1-Full\upl
oads\del_some_dir.php on line 35

debug_backtrace() 函数生成一个 backtrace。[1]
该函数返回一个关联数组

------------java 
e.printStackTrace()

保存stack到文件,方法1
StackTraceElement [] messages=ex.getStackTrace();
   int length=messages.length;
   for(int i=0;i<length;i++){
    System.out.println("ClassName:"+messages[i].getClassName());
    System.out.println("getFileName:"+messages[i].getFileName());
    System.out.println("getLineNumber:"+messages[i].getLineNumber());
    System.out.println("getMethodName:"+messages[i].getMethodName());
    System.out.println("toString:"+messages[i].toString());
    }
   }
   
 保存stack到文件,方法2
public String getTrace(Throwable t) {
        StringWriter stringWriter= new StringWriter();
        PrintWriter writer= new PrintWriter(stringWriter);
        t.printStackTrace(writer);
        StringBuffer buffer= stringWriter.getBuffer();
        return buffer.toString();
    }

------------python
info = traceback.format_exc()
print info

参考:
python异常处理及异常信息追踪 - 趣客(放糖的绿豆汤) - Power by SupDo!.htm

paip. 调试技术打印堆栈 uapi print stack java php python 总结.相关推荐

  1. 客户端dmesg_打印调试技术 printk klogd dmesg(解决打印信息的问题)

    4.2.1. printk #include printk(KERN_CRIT"error %s,%i",__FILE__,__LINE__); 注: 1). printk 函数中 ...

  2. linux内核调试技术 kprobe使用与实现

    Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术.利用kprobes技术,内核开发人员可以在内核的绝大多数指定函数中动态的插入探测点来收集 ...

  3. shell脚本调试技术

    Shell脚本调试技术 曹 羽中 (caoyuz@cn.ibm.com), 软件工程师, IBM中国开发中心 曹羽中,在北京航空航天大学获得计算机软件与理论专业的硕士学位,具有数年的 unix 环境下 ...

  4. Linux调试技术介绍

    对于任何编写内核代码的人来说,最吸引他们注意的问题之一就是如何完成调试.由于内核是一个不与某个进程相关的功能集,其代码不能很轻松地放在调试器中执行,而且也不能跟踪. 本章介绍你可以用来监视内核代码和跟 ...

  5. 如何在Node.js中打印堆栈跟踪?

    本文翻译自:How to print a stack trace in Node.js? 有谁知道如何在Node.js中打印堆栈跟踪? #1楼 参考:https://stackoom.com/ques ...

  6. Android | 打印堆栈

    目录 1. Java中打印堆栈 1.1 Throwable类 1.2 Debug类 2.C++代码中打印堆栈 3. C代码中打印堆栈 4.Linux内核中打印堆栈 5.动态方法 5.1 dump ja ...

  7. 为什么要学习C++软件调试技术?掌握这类技术都有哪些好处?

    目录 1.为什么要学习C++软件调试技术? 1.1.IDE调试手段虽必不可少,但还不够 1.2.通过查看日志和代码去排查异常崩溃问题,费时费力,很难定位问题 1.3.有的问题很难复现,可能只在客户的环 ...

  8. Linux环境下的C/C+基础调试技术2——程序控制

    Author:gnuhpc WebSite:blog.csdn.net/gnuhpc 1.让程序停下来的三种模式 断点(breakpoint):让程序在特定的地点停止执行. 观察点(watchpoin ...

  9. Windows程序调试----第三部分 调试技术----第9章 内存调试

    第9章内存调试 能够方便高效地进行动态内存分配,是C++编程语言的重要优点之一:而调试时容易错误使用动态分配的内存也是其最大的缺点之一.Windows程序也可能同样存在与系统资源泄漏或者堆栈相关的内存 ...

最新文章

  1. 这是我见过最卡通的 Python 算法了,通俗易懂
  2. UVA1660 电视网络 Cable TV Network(网络流,最小割)
  3. 用bho方式拦截中国电信流氓广告
  4. select查询中@作用_SQL学习第四关:复杂查询
  5. 事务(Transaction)
  6. 思科扩展ACL具体怎么配置?
  7. Bone Collector
  8. iw工具安装和使用 (修正版)
  9. mdb文件取消隐藏_webshellphp隐藏技巧
  10. 探寻 Redis 内存诡异增长的元凶
  11. 基于RxJava2+Retrofit2简单易用的网络请求实现
  12. debug工具_Hackintool for【黑】mac V3.4.4中文版 黑苹果必装工具箱
  13. NETBIOS/NETBEUI 协议 SAMBA
  14. CTFHub | HG泄露
  15. HLOJ486 种花小游戏
  16. sqlplus方向键问题_wuli大世界_新浪博客
  17. 阿里云服务器购买过程中必须了解的注意事项
  18. 那些年,我们走过的Github坑
  19. win10安装mmcv和mmcv-full报错
  20. winform 学习笔记

热门文章

  1. Good Time 冲刺 六
  2. C# Task 用法
  3. 从头学习MVC4基础之视图
  4. Flex更改Image
  5. XML DTD用法【转载】
  6. 解读边缘计算在7大领域的研究趋势和最新进展
  7. python如何安装pdfminer_|请教在python3中安装pdfminer.six的方法
  8. python学生管理系统2.0-python3.6+django2.0开发一套学员管理系统
  9. 3年开发经验,挂在了MyBatis十八连环问上!精通MyBatis源码,有多吃香?
  10. discuz! X3 更改域名全程记录 (修改域名的方法)