1 #define _POSIX_C_SOURCE 200809L
2 
3 #include <cstdio>
4 #include <cstdlib>
5 #include <cstring>
6 #include <libgen.h>
7 #include <string>
8 #include <unistd.h>
9 
10 int main(int argc, char const **argv) {
11   char *buf = strdup(argv[0]); // Set breakpoint 1 here
12   std::string directory_name(::dirname(buf));
13 
14   std::string other_program = directory_name + "/secondprog";
15   execve(other_program.c_str(), const_cast<char *const *>(argv), nullptr);
16   perror("execve");
17   abort();
18 }
19