* e: handle more valgrind tool to monitore e17.
SVN revision: 47600
This commit is contained in:
parent
9c9333b24a
commit
9dc05e298b
|
@ -359,10 +359,23 @@ find_valgrind(char *path, size_t path_len)
|
||||||
#define VALGRIND_MODE_ALL 15
|
#define VALGRIND_MODE_ALL 15
|
||||||
|
|
||||||
static int
|
static int
|
||||||
valgrind_append(char **dst, int valgrind_mode, char *valgrind_path, const char *valgrind_log)
|
valgrind_append(char **dst, int valgrind_mode, int valgrind_tool, char *valgrind_path, const char *valgrind_log)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
if (valgrind_tool)
|
||||||
|
{
|
||||||
|
dst[i++] = valgrind_path;
|
||||||
|
|
||||||
|
switch (valgrind_tool)
|
||||||
|
{
|
||||||
|
case 1: dst[i++] = "--tool=massif"; break;
|
||||||
|
case 2: dst[i++] = "--tool=callgrind"; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
if (!valgrind_mode)
|
if (!valgrind_mode)
|
||||||
return 0;
|
return 0;
|
||||||
dst[i++] = valgrind_path;
|
dst[i++] = valgrind_path;
|
||||||
|
@ -404,6 +417,7 @@ int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int i, do_precache = 0, valgrind_mode = 0;
|
int i, do_precache = 0, valgrind_mode = 0;
|
||||||
|
int valgrind_tool = 0;
|
||||||
char buf[16384], **args, *p;
|
char buf[16384], **args, *p;
|
||||||
char valgrind_path[PATH_MAX] = "";
|
char valgrind_path[PATH_MAX] = "";
|
||||||
const char *valgrind_log = NULL;
|
const char *valgrind_log = NULL;
|
||||||
|
@ -452,6 +466,14 @@ main(int argc, char **argv)
|
||||||
else
|
else
|
||||||
printf("Unknown valgrind option: %s\n", argv[i]);
|
printf("Unknown valgrind option: %s\n", argv[i]);
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(argv[i], "-massif"))
|
||||||
|
{
|
||||||
|
valgrind_tool = 1;
|
||||||
|
}
|
||||||
|
else if (!strcmp(argv[i], "-callgrind"))
|
||||||
|
{
|
||||||
|
valgrind_tool = 2;
|
||||||
|
}
|
||||||
else if ((!strcmp(argv[i], "-h")) ||
|
else if ((!strcmp(argv[i], "-h")) ||
|
||||||
(!strcmp(argv[i], "-help")) ||
|
(!strcmp(argv[i], "-help")) ||
|
||||||
(!strcmp(argv[i], "--help")))
|
(!strcmp(argv[i], "--help")))
|
||||||
|
@ -467,6 +489,10 @@ main(int argc, char **argv)
|
||||||
"\t\t 4 = check leak\n"
|
"\t\t 4 = check leak\n"
|
||||||
"\t\t 8 = show reachable after processes finish.\n"
|
"\t\t 8 = show reachable after processes finish.\n"
|
||||||
"\t\t all = all of above\n"
|
"\t\t all = all of above\n"
|
||||||
|
"\t-massif\n"
|
||||||
|
"\t\tRun enlightenment from inside massif valgrind tool.\n"
|
||||||
|
"\t-callgrind\n"
|
||||||
|
"\t\tRun enlightenment from inside callgrind valgrind tool.\n"
|
||||||
"\t-valgrind-log-file=<FILENAME>\n"
|
"\t-valgrind-log-file=<FILENAME>\n"
|
||||||
"\t\tSave valgrind log to file, see valgrind's --log-file for details.\n"
|
"\t\tSave valgrind log to file, see valgrind's --log-file for details.\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -478,7 +504,7 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valgrind_mode)
|
if (valgrind_mode || valgrind_tool)
|
||||||
{
|
{
|
||||||
if (!find_valgrind(valgrind_path, sizeof(valgrind_path)))
|
if (!find_valgrind(valgrind_path, sizeof(valgrind_path)))
|
||||||
{
|
{
|
||||||
|
@ -535,7 +561,7 @@ main(int argc, char **argv)
|
||||||
args[0] = "dbus-launch";
|
args[0] = "dbus-launch";
|
||||||
args[1] = "--exit-with-session";
|
args[1] = "--exit-with-session";
|
||||||
|
|
||||||
i = 2 + valgrind_append(args + 2, valgrind_mode, valgrind_path, valgrind_log);
|
i = 2 + valgrind_append(args + 2, valgrind_mode, valgrind_tool, valgrind_path, valgrind_log);
|
||||||
args[i++] = buf;
|
args[i++] = buf;
|
||||||
copy_args(args + i, argv + 1, argc - 1);
|
copy_args(args + i, argv + 1, argc - 1);
|
||||||
args[i + argc - 1] = NULL;
|
args[i + argc - 1] = NULL;
|
||||||
|
@ -543,7 +569,7 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* dbus-launch failed - run e direct */
|
/* dbus-launch failed - run e direct */
|
||||||
i = valgrind_append(args, valgrind_mode, valgrind_path, valgrind_log);
|
i = valgrind_append(args, valgrind_mode, valgrind_tool, valgrind_path, valgrind_log);
|
||||||
args[i++] = buf;
|
args[i++] = buf;
|
||||||
copy_args(args + i, argv + 1, argc - 1);
|
copy_args(args + i, argv + 1, argc - 1);
|
||||||
args[i + argc - 1] = NULL;
|
args[i + argc - 1] = NULL;
|
||||||
|
|
Loading…
Reference in New Issue