Path: blob/master/debugtools/DDR_VM/src/com/ibm/j9ddr/util/GeneratedClassDebugging.java
6005 views
/*******************************************************************************1* Copyright (c) 2009, 2014 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/21package com.ibm.j9ddr.util;2223import java.lang.reflect.Field;24import java.lang.reflect.Method;25import java.lang.reflect.Modifier;2627/**28* Utility functions for debugging generated classes29*30* @author andhall31*32*/33public class GeneratedClassDebugging34{3536/**37* Dumps the fields and methods of a class to the console.38*39* Similar to javap40* @param clazz41*/42public static void dumpClass(Class<?> clazz)43{44System.err.println("Dump of class: " + clazz.getName());4546System.err.println("Methods:");47for (Method m : clazz.getMethods()) {48System.err.println("* " + m);49}5051System.err.println("Fields:");52for (Field f : clazz.getFields()) {53if ((f.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC)) == (Modifier.STATIC | Modifier.PUBLIC)) {54try {55System.err.println("* " + f + " = " + f.get(null));56} catch (Exception e) {57throw new RuntimeException(e);58}59} else {60System.err.println("* " + f);61}62}63}64}656667