X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Fprocess.h;h=128ce41219a18d1fe1497a4b1a68d834ae210d66;hb=721c953018205e228ab87a5e46d053ce7a6f02f6;hp=513bc9420d8cbbefaf5a612c962695cd7a7ec55e;hpb=6d27d8c0548ea9832f3bc4dc50a9e2ab2e05f00c;p=dpdk.git diff --git a/app/test/process.h b/app/test/process.h index 513bc9420d..128ce41219 100644 --- a/app/test/process.h +++ b/app/test/process.h @@ -5,12 +5,16 @@ #ifndef _PROCESS_H_ #define _PROCESS_H_ +#include /* errno */ #include /* PATH_MAX */ #include /* basename et al */ #include /* NULL */ +#include /* strerror */ #include /* readlink */ #include +#include /* strlcpy */ + #ifdef RTE_EXEC_ENV_FREEBSD #define self "curproc" #define exe "file" @@ -67,8 +71,15 @@ process_dup(const char *const argv[], int numargs, const char *env_value) /* set the environment variable */ if (setenv(RECURSIVE_ENV_VAR, env_value, 1) != 0) rte_panic("Cannot export environment variable\n"); - if (execv("/proc/" self "/" exe, argv_cpy) < 0) - rte_panic("Cannot exec\n"); + + strlcpy(path, "/proc/" self "/" exe, sizeof(path)); + if (execv(path, argv_cpy) < 0) { + if (errno == ENOENT) { + printf("Could not find '%s', is procfs mounted?\n", + path); + } + rte_panic("Cannot exec: %s\n", strerror(errno)); + } } /* parent process does a wait */ #ifdef RTE_LIBRTE_PDUMP