forked from enlightenment/enlightenment
e: add an option to automatically attach gdb when using valgrind.
SVN revision: 73904
This commit is contained in:
parent
b9401856d7
commit
1a728fafd9
|
@ -148,12 +148,12 @@ next:
|
||||||
|
|
||||||
|
|
||||||
/* maximum number of arguments added above */
|
/* maximum number of arguments added above */
|
||||||
#define VALGRIND_MAX_ARGS 9
|
#define VALGRIND_MAX_ARGS 10
|
||||||
/* bitmask with all supported bits set */
|
/* bitmask with all supported bits set */
|
||||||
#define VALGRIND_MODE_ALL 15
|
#define VALGRIND_MODE_ALL 15
|
||||||
|
|
||||||
static int
|
static int
|
||||||
valgrind_append(char **dst, int valgrind_mode, int valgrind_tool, char *valgrind_path, const char *valgrind_log)
|
valgrind_append(char **dst, int valgrind_gdbserver, int valgrind_mode, int valgrind_tool, char *valgrind_path, const char *valgrind_log)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
@ -167,6 +167,7 @@ valgrind_append(char **dst, int valgrind_mode, int valgrind_tool, char *valgrind
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
if (valgrind_gdbserver) dst[i++] = "--db-attach=yes";
|
||||||
if (!valgrind_mode) return 0;
|
if (!valgrind_mode) return 0;
|
||||||
dst[i++] = valgrind_path;
|
dst[i++] = valgrind_path;
|
||||||
dst[i++] = "--track-origins=yes";
|
dst[i++] = "--track-origins=yes";
|
||||||
|
@ -200,6 +201,7 @@ 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;
|
int valgrind_tool = 0;
|
||||||
|
int valgrind_gdbserver = 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;
|
||||||
|
@ -222,6 +224,7 @@ main(int argc, char **argv)
|
||||||
for (i = 1; i < argc; i++)
|
for (i = 1; i < argc; i++)
|
||||||
{
|
{
|
||||||
if (!strcmp(argv[i], "-no-precache")) do_precache = 0;
|
if (!strcmp(argv[i], "-no-precache")) do_precache = 0;
|
||||||
|
else if (!strcmp(argv[i], "-valgrind-gdb")) valgrind_gdbserver = 1;
|
||||||
else if (!strncmp(argv[i], "-valgrind", sizeof("-valgrind") - 1))
|
else if (!strncmp(argv[i], "-valgrind", sizeof("-valgrind") - 1))
|
||||||
{
|
{
|
||||||
const char *val = argv[i] + sizeof("-valgrind") - 1;
|
const char *val = argv[i] + sizeof("-valgrind") - 1;
|
||||||
|
@ -393,7 +396,7 @@ done:
|
||||||
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_tool, valgrind_path, valgrind_log);
|
i = 2 + valgrind_append(args + 2, valgrind_gdbserver, 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;
|
||||||
|
@ -401,7 +404,7 @@ done:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* dbus-launch failed - run e direct */
|
/* dbus-launch failed - run e direct */
|
||||||
i = valgrind_append(args, valgrind_mode, valgrind_tool, valgrind_path, valgrind_log);
|
i = valgrind_append(args, valgrind_gdbserver, 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