blob: 05859c12b2b8ac4182d3df74808dde064a94a8c9 [file] [log] [blame]
/*
* 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);
};