|
@@ -1126,3 +1126,30 @@ size_t perf_evlist__fprintf(struct perf_evlist *evlist, FILE *fp)
|
|
|
|
|
|
return printed + fprintf(fp, "\n");;
|
|
|
}
|
|
|
+
|
|
|
+int perf_evlist__strerror_tp(struct perf_evlist *evlist __maybe_unused,
|
|
|
+ int err, char *buf, size_t size)
|
|
|
+{
|
|
|
+ char sbuf[128];
|
|
|
+
|
|
|
+ switch (err) {
|
|
|
+ case ENOENT:
|
|
|
+ scnprintf(buf, size, "%s",
|
|
|
+ "Error:\tUnable to find debugfs\n"
|
|
|
+ "Hint:\tWas your kernel was compiled with debugfs support?\n"
|
|
|
+ "Hint:\tIs the debugfs filesystem mounted?\n"
|
|
|
+ "Hint:\tTry 'sudo mount -t debugfs nodev /sys/kernel/debug'");
|
|
|
+ break;
|
|
|
+ case EACCES:
|
|
|
+ scnprintf(buf, size,
|
|
|
+ "Error:\tNo permissions to read %s/tracing/events/raw_syscalls\n"
|
|
|
+ "Hint:\tTry 'sudo mount -o remount,mode=755 %s'\n",
|
|
|
+ debugfs_mountpoint, debugfs_mountpoint);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ scnprintf(buf, size, "%s", strerror_r(err, sbuf, sizeof(sbuf)));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|