summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/functionalities/exec/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities/exec/main.cpp')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/exec/main.cpp50
1 files changed, 16 insertions, 34 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/exec/main.cpp b/lldb/packages/Python/lldbsuite/test/functionalities/exec/main.cpp
index 700c5dd94b2..92206b2d88e 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/exec/main.cpp
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/exec/main.cpp
@@ -6,6 +6,8 @@
#include <stdlib.h>
#include <spawn.h>
#include <unistd.h>
+#include <libgen.h>
+#include <string>
static void
exit_with_errno (int err, const char *prefix)
@@ -21,9 +23,9 @@ exit_with_errno (int err, const char *prefix)
}
static pid_t
-spawn_process (const char **argv,
+spawn_process (const char *progname,
+ const char **argv,
const char **envp,
- cpu_type_t cpu_type,
int &err)
{
pid_t pid = 0;
@@ -46,21 +48,12 @@ spawn_process (const char **argv,
posix_spawnattr_setsigmask(&attr, &no_signals);
posix_spawnattr_setsigdefault(&attr, &all_signals);
- if (cpu_type != 0)
- {
- size_t ocount = 0;
- err = posix_spawnattr_setbinpref_np (&attr, 1, &cpu_type, &ocount);
- }
-
- if (err == 0)
- {
- err = posix_spawn (&pid,
- argv[0],
- file_actions,
- &attr,
- (char * const *)argv,
- (char * const *)envp);
- }
+ err = posix_spawn (&pid,
+ progname,
+ file_actions,
+ &attr,
+ (char * const *)argv,
+ (char * const *)envp);
posix_spawnattr_destroy(&attr);
}
@@ -70,25 +63,14 @@ spawn_process (const char **argv,
int
main (int argc, char const **argv)
{
- printf ("pid %i: Pointer size is %zu.\n", getpid(), sizeof(void *));
+ char *buf = (char*) malloc (strlen (argv[0]) + 12);
+ strlcpy (buf, argv[0], strlen (argv[0]) + 1);
+ std::string directory_name (::dirname (buf));
+
+ std::string other_program = directory_name + "/secondprog";
int err = 0; // Set breakpoint 1 here
-#if defined (__x86_64__)
- if (sizeof(void *) == 8)
- {
- spawn_process (argv, NULL, CPU_TYPE_I386, err);
- if (err)
- exit_with_errno (err, "posix_spawn i386 error");
- }
- else
- {
- spawn_process (argv, NULL, CPU_TYPE_X86_64, err);
- if (err)
- exit_with_errno (err, "posix_spawn x86_64 error");
- }
-#else
- spawn_process (argv, NULL, 0, err);
+ spawn_process (other_program.c_str(), argv, NULL, err);
if (err)
exit_with_errno (err, "posix_spawn x86_64 error");
-#endif
return 0;
}
OpenPOWER on IntegriCloud