DebugUtils HAL serves the purpose of providing APIs to collect useful debug information Change-Id: I3d4853f98dd81e071c27dcc705e44516dcca0f3b
141 lines
4.8 KiB
Plaintext
141 lines
4.8 KiB
Plaintext
/*
|
|
* Copyright (c) 2020 The Linux Foundation. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following
|
|
* disclaimer in the documentation and/or other materials provided
|
|
* with the distribution.
|
|
* * Neither the name of The Linux Foundation. nor the names of its
|
|
* contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
package vendor.qti.hardware.debugutils@1.0;
|
|
|
|
interface IDebugUtils {
|
|
/**
|
|
* set breakpoint in a process hosted by @param pid
|
|
*/
|
|
setBreakPoint(uint64_t pid, bool isProcess, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* set watchpoint in a thread hosted by @param pid on address stored in @param add
|
|
*/
|
|
setWatchPoint(uint64_t pid, uint64_t add, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* Read binder debugfs and move it to another place
|
|
*/
|
|
collectFullBinderDebugInfo(bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* Read binder_debugfs specific to a process hosted with @param pid
|
|
*/
|
|
collectBinderDebugInfoByPid(uint64_t pid, bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* Read binder_debugfs specific to a process hosted with @param ProcessName
|
|
*/
|
|
collectBinderDebugInfoByProcessname(string processName, bool isBlocking,string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* Collect logcat buffer speicified by @param bufferName for duration specified by @param duration
|
|
*/
|
|
collectUserspaceLogs(string logCmd, string debugTag,uint64_t duration) generates (Status status);
|
|
|
|
/**
|
|
* collect stacktrace of a process specified by @param ProcessName
|
|
*/
|
|
collectStackTraceByProcessName(string processName, bool isJava, bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* collect stacktrace of a process specified by @param pid
|
|
*/
|
|
collectStackTraceByPid(uint64_t pid, bool isJava, bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* start Perfetto tracing
|
|
*/
|
|
startPerfettoTracing(uint64_t duration, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* stop Perfetto tracing
|
|
*/
|
|
stopPerfettoTracing(string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* start SimplePerf tracing hosted by @param pid
|
|
*/
|
|
startSimplePerfTracing(uint64_t pid, uint64_t duration, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* stop SimplePerf tracing for process
|
|
*/
|
|
stopSimplePerfTracing(string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* execute am command specified by @param Command
|
|
*/
|
|
executeDumpsysCommands(string command, bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* Collect the stack trace of processes which in IPC with process
|
|
* hosted by @param pid
|
|
*/
|
|
collectDependentProcessStackTrace(uint64_t pid, bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* crash the device to collect the ramdump
|
|
*/
|
|
collectRamdump(string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* collect memory specific info
|
|
*/
|
|
collectMemoryInfo(bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
* collect CPU specific info
|
|
*/
|
|
collectCPUInfo(bool isBlocking, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
*collect process specific Memory info
|
|
*/
|
|
collectProcessMemoryInfo(bool isBlocking, uint64_t pid, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
*collect process specific CPU info
|
|
*/
|
|
collectProcessCPUInfo(bool isBlocking, uint64_t pid, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
*collect periodic ANR traces
|
|
*/
|
|
collectPeriodicTraces(uint64_t pid ,uint64_t duration, string debugTag) generates (Status status);
|
|
|
|
/**
|
|
*collect hprof
|
|
*/
|
|
collectHprof(bool isBlocking, uint64_t pid, string debugTag) generates (Status status);
|
|
|
|
};
|
|
|