e: simplify logic.

SVN revision: 78737
This commit is contained in:
Cedric BAIL 2012-11-01 01:09:22 +00:00
parent 1e3ac4150c
commit 0b5db2653e
1 changed files with 9 additions and 32 deletions

View File

@ -156,43 +156,20 @@ main(int argc,
if (!strcmp(action, "gdb"))
{
Eina_Prefix *pfx = NULL;
char buffer[4096];
char *tmp;
char *enlightenment_gdb;
int fd;
int r;
pfx = eina_prefix_new(argv[0], main,
"E", "enlightenment", "AUTHORS",
PACKAGE_BIN_DIR, PACKAGE_LIB_DIR,
PACKAGE_DATA_DIR, LOCALE_DIR);
if (!pfx) exit(-1);
snprintf(buffer, 4096,
"set logging file %s\nset logging on\nbacktrace full\n",
output);
tmp = strdup("/tmp/e-gdb-XXXXXX");
fd = mkstemp(tmp);
if (fd < 0) exit(-1);
write(fd, buffer, strlen(buffer));
close(fd);
snprintf(buffer, 4096,
"cat %s | %s %s/enlightenment %i > /dev/null 2> /dev/null",
tmp,
snprintf(buffer, 4096,
"%s --pid=%i "
"-ex 'set logging file %s' "
"-ex 'set logging on' "
"-ex 'thread apply all backtrace full' "
"-ex detach -ex quit > /dev/null 2> /dev/null",
cmd,
eina_prefix_bin_get(pfx),
pid);
enlightenment_gdb = strdup(buffer);
pid,
output);
r = system(enlightenment_gdb);
unlink(tmp);
free(enlightenment_gdb);
free(tmp);
r = system(buffer);
exit(WEXITSTATUS(r));
}