本文介绍了如何在开发 VHAL 时获取调试信息:
转储 VHAL 的当前状况。
在 dumpstate 中添加 VHAL 进程转储。
如果这两种方法均采用,adb bugreport 会同时包含二者。
此外,还可通过注册到汽车监控定时器来检索状况不佳的运行时 VHAL。
转储 VHAL 调试信息
实现对 IVehicle.hal 的调试
调用 lshal debug
时,系统会调用 IVehicle::debug。您可以转储 VHAL 的内部状况,也可以根据选项对 VHAL 执行所需的操作。
Return VehicleHal::debug(const hidl_handle& handle, const hidl_vec& options) {
if (handle.getNativeHandle() == nullptr || handle->numFds < 1) {
ALOGE("Invalid parameters passed to debug()");
return Void();
}
int fd = handle->data[0];
// Process options
if (options.size() == 0) {
dump_VHAL_state(fd);
return Void();
}
std::string option = options[0];
if (EqualsIgnoreCase(option, "--help")) {