`
AmwuYYGY
  • 浏览: 26672 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

DEBUG调试问题工具类-获取方法调用堆

    博客分类:
  • JAVA
阅读更多
有的时候,一个方法每调用了,但是不能得到预期的结果,这个时候想去查一下,方法是在哪调用的,由于这个方法被调用的地方很多,这个时候可以用下面的方法去查看调用的堆路径,从而方便找出问题


/**
 * DEBUG调试问题工具类
 * @author AmwuYYYG
 */
class DebugUtils{
	
	/**
	 * 获取方法调用堆
	 */
	public static String getMethodStackTrace(){
		StringBuffer res=new StringBuffer();
		for (StackTraceElement obj : Thread.currentThread().getStackTrace()) {
			if ("java.lang.ThreadgetStackTrace".equals(obj.getClassName()+obj.getMethodName()) == false
				&& (DebugUtils.class.getName()+"getMethodStackTrace").equals(obj.getClassName()+obj.getMethodName()) == false
				) {
				String tmp = String.format("\\%s.%s(%s)", 
						obj.getClassName(), 
						obj.getMethodName(), 
						obj.getLineNumber());

				res.insert(0, tmp);
			}

		}
		res.deleteCharAt(0);
		return res.toString();
	}
}


测试代码

public class App {

	public static void main(String[] args) {
		test004();
	}
	private static void test001() {
		System.out.println(DebugUtils.getMethodStackTrace());
	}
	private static void test002() {
		test001();
	}
	private static void test003() {
		test002();
	}
	private static void test004() {
		test003();
	}
}


输出结果,方法括号中表示在类的第几行调用

com.App.main(6)\com.App.test004(23)\com.App.test003(19)\com.App.test002(15)\com.App.test001(11)
分享到:
评论

相关推荐

    Postman 接口调用模拟工具

    Postman 接口调用模拟工具 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页...

    debug-online:火眼平台,一个在线web服务调试系统

    debug-online-common基础工具类和通用实体 debug-online-dashboard以收集代理包传递过来的数据并进行可视化界面展示 debug-online-test测试模块,简单启动一个无限循环任务,来监测数据 安装教程 修改debug-online-...

    调试开发工具集

    各工具简介和微软官方网页 AccessChk 为了确保创建安全的环境,Windows 管理员通常需要了解特定用户或用户组对文件、目录、注册表项和 Windows 服务等资源具有哪种访问权限。AccessChk 能够通过直观的界面和输出快速...

    尚硅谷_佟刚_JDBC.pptx

    源码级讲授 DBUtils 工具类的实现思想,DEBUG 调试其运行过程。示例代码专业、实用,使学员能站在更高层次上深入理解 JDBC 技术。 ------------------------------------ 视频内容: 1. 获取数据库连接(视频1-2) ...

    PMyBaseDebug (清凉级Debug工具单元)

    我喜欢写类,可每写一个类总得建一个工程来为这个类Debug,时间长了就有好多工程O_O;突然发现我总是在做同样重复的事,比如我要比较2个算法消耗的时间,我总要在调用这个算法的过程前边加上时间计算:var Ls,Le:...

    腾讯开源的手机前端开发调试利器 vConsole.zip

    与电脑端的Developer Tools一样,开发者可以通过调用不同的方法来打出不同的颜色,以便快速区分日志类型:console.log('foo'); // 白底黑字  console.info('bar'); // 白底紫字  console.debug('oh'); // ...

    新版Android开发教程.rar

    � 基于 QEMU 开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。 � 暂不具备 Push Mail 和 Office(DataViz 、 QuickOffice 计划近期推出 ) 功能,目前主要面向的是普通消费 者 用户,对商业用户支持...

    iOS应用内调试工具

    源码FLEX,FLEX(Flipboard Explorer)是Flipboard官方发布的一组专门用于iOS开发的应用内调试工具,其主要开发者为Flipboard公司旗下的iOS工程师Ryan Olson。和许多调试工具不同的是,FLEX不仅能在模拟器和物理设备...

    KODExplorer 芒果云-资源管理器

    - 自动升级(本地记录版本,服务器js调用 参数 url、###version;忽略此版本。cookie。统计用户) ###ver2.0 debug `2014/3/2` ---- ####fix bug:(bug解决和程序优化) - 优化文件打开处理 - 文件&文件夹:含有%...

    McGraw C++程序调试实用手册

    9.l 高级调试工具 9.l.l 内存卸出 9.1.2 定位错误参数从何处传递而来 9.1.3 查找何处修改了指针 9.2 Class View窗口要素 9.2.1 ClassView窗口的 Grouped by Access功能 9.2.2 ClassView窗口的 Base ...

    scws23-php

    其它:在 segment() 方法执行结束后调用 get_statistics() 方法获取统计信息。 Array &get_statistics(void); 说明:返回上次 segment() 调用的分词结果的各词汇出现的次数及位置信息(引用返回)。 参数:无。 ...

    pscws23-20081221.tar.bz2【中文分词】

    其它:在 segment() 方法执行结束后调用 get_statistics() 方法获取统计信息。 Array &get_statistics(void); 说明:返回上次 segment() 调用的分词结果的各词汇出现的次数及位置信息(引用返回)。 参数:无。 ...

    C++上机实验报告-实验三.docx

    使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 2.实验要求 1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run...

    Idea中tomcat启动源码调试进入到tomcat内部进行调试的方法

    使用idea开发工具调试代码的时候,如果是java的web项目,使用的是tomcat作为web容器,打断点debug调试跟踪,当跟踪到org.apache.catalina包下的时候,则无法进入,这是因为idea运行的tomcat是通过插件的方式集成的,...

    ARM开发工具ADS原理与应用 读书笔记

    一本介绍ARM开发工具,ADS的TXT类电子书,包含以下内容: 第1章 ARM调试方法和工具 1.1 调试原理概述 1.1.1 传统调试方法 1.1.2 ARM调试的特点 1.1.3 ARM调试原理 1.2 ARM调试方法 1.3 ARM开发工具介绍 1.3.1 ARM...

    使用traceview和dmtracedump调试Android代码

    使用traceview和dmtracedump调试Android代码   ✿Android程序调试工具  Google为我们提供的代码调试工具的...  ✿生成.trace文件  android.os.Debug类,其中重要的两个方法Debug.startMethodTracing()和Debug.st

    Visual C++ 数据库系统开发完全手册.part1

    11.8.2 RxRecordset类的制作方法 第12章 数据查询技巧 12.1 SQL简介 12.2 查询命令SELECT 12.2.1 SELECT命令简介 12.2.2 SELECT子句 12.2.3 FROM子句 12.2.4 WHERE子句 12.2.5 使用ORDER BY排序查询结果 12.2.6 聚合...

    如何获得局部变量名

    尽管eclipse提供了Debug工具,还是习惯写System.out.println("abc="+abc); 经常写这样的语句,总感觉变量abc每次写两遍,有些重复。 网上找了很多资料,没解决。 反射好像也不行。 想用jni调用C来解决,由于指针变量无法...

    eclipse 开发c/c++

    如果通过调用 make 命令来构建项目, 那么缺省设置没问题,但是,如果使用一种更复杂的方法进行构建,则必需在 Build Command 文本框中 输入适当的命令(例如, make -f make_it_all )。接下来,在 C/C++ Projects ...

Global site tag (gtag.js) - Google Analytics