#include "aul/aul_api.h"
#include "aul/common/log_private.hh"
#include "aul/include/aul.h"
+#include "aul/app_request.h"
namespace {
return -1;
}
+ _D("Ptrace attach success. pid=%d, SIGCHLD raised.", pid_);
attached_ = true;
return 0;
}
trace.PrintBacktrace();
return AUL_R_OK;
}
+
+extern "C" API int aul_send_backtrace_request(pid_t pid) {
+ if (pid < 1) {
+ _E("Invalid parameter");
+ return AUL_R_EINVAL;
+ }
+
+ int ret = aul::internal::AppRequest(WATCHDOG_PRINT_BT, getuid())
+ .With({{AUL_K_TARGET_PID, std::to_string(pid)}})
+ .SendSimply();
+ if (ret < 0) {
+ _E("Failed to send request. error(%d)", ret);
+ return ret;
+ }
+
+ return AUL_R_OK;
+}
*/
int aul_backtrace_print(pid_t pid);
+/**
+ * @brief Requests amd to print backtrace information of the specified process.
+ * @param[in] pid The process ID.
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #AUL_R_OK Successful
+ * @retval #AUL_R_EINVAL Invalid parameter
+ * @retval #AUL_R_EILLACC Permission denied
+ * @retval #AUL_R_ERROR General error
+ */
+int aul_send_backtrace_request(pid_t pid);
+
#ifdef __cplusplus
}
#endif