diff options
Diffstat (limited to 'executor/executor_linux.h')
| -rw-r--r-- | executor/executor_linux.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/executor/executor_linux.h b/executor/executor_linux.h index e8105f65f..fce380561 100644 --- a/executor/executor_linux.h +++ b/executor/executor_linux.h @@ -91,11 +91,28 @@ static intptr_t execute_syscall(const call_t* c, intptr_t a[kMaxArgs]) return res; } +static void dump_dir(const char* path) +{ + DIR* dir = opendir(path); + struct dirent* d = NULL; + if (!dir) + return; + fprintf(stderr, "Index of %s\n", path); + while ((d = readdir(dir)) != NULL) + fprintf(stderr, " %s\n", d->d_name); + closedir(dir); +} + static void cover_open(cover_t* cov, bool extra) { int fd = open("/sys/kernel/debug/kcov", O_RDWR); if (fd == -1) { const int err = errno; + dump_dir("/"); + dump_dir("/proc/"); + dump_dir("/sys/"); + if (mount("/proc/", "/proc/", "proc", 0, NULL)) + fprintf(stderr, "Can't mount proc on /proc/\n"); if (chdir("/sys/")) fprintf(stderr, "/sys/ does not exist.\n"); else if (chdir("/sys/kernel/")) |
