| /* |
| * Copyright (C) 2007 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.harmony.dalvik.ddmc; |
| |
| import dalvik.annotation.optimization.FastNative; |
| |
| /** |
| * Declarations for some VM-internal DDM stuff. |
| */ |
| public class DdmVmInternal { |
| |
| /* do not instantiate */ |
| private DdmVmInternal() {} |
| |
| /** |
| * Enable thread notification. |
| * |
| * This is built into the VM, since that's where threads get managed. |
| */ |
| native public static void threadNotify(boolean enable); |
| |
| /** |
| * Enable heap info updates. |
| * |
| * This is built into the VM, since that's where the heap is managed. |
| * |
| * @param when when to send the next HPIF chunk |
| * @return true on success. false if 'when' is bad or if there was |
| * an internal error. |
| */ |
| @FastNative |
| native public static boolean heapInfoNotify(int when); |
| |
| /** |
| * Enable heap segment updates for the java (isNative == false) or |
| * native (isNative == true) heap. |
| * |
| * This is built into the VM, since that's where the heap is managed. |
| */ |
| native public static boolean heapSegmentNotify(int when, int what, |
| boolean isNative); |
| |
| /** |
| * Get status info for all threads. This is for the THST chunk. |
| * |
| * Returns a byte array with the THST data, or null if something |
| * went wrong. |
| */ |
| native public static byte[] getThreadStats(); |
| |
| /** |
| * Get a stack trace for the specified thread ID. The ID can be found |
| * in the data from getThreadStats. |
| */ |
| native public static StackTraceElement[] getStackTraceById(int threadId); |
| |
| /** |
| * Enable or disable "recent allocation" tracking. |
| */ |
| native public static void enableRecentAllocations(boolean enable); |
| |
| /* |
| * Return a boolean indicating whether or not the "recent allocation" |
| * feature is currently enabled. |
| */ |
| @FastNative |
| native public static boolean getRecentAllocationStatus(); |
| |
| /** |
| * Fill a buffer with data on recent heap allocations. |
| */ |
| @FastNative |
| native public static byte[] getRecentAllocations(); |
| } |
| |