File: main.cpp

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (16 lines) | stat: -rw-r--r-- 638 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <unistd.h>

int main(int argc, const char *argv[], const char *envp[]) {
  if (argc == 2) {
    // If we have two arguments the first is the path to this executable,
    // the second is the path to the linux dynamic loader that we should
    // exec with. We want to re-run this problem under the dynamic loader
    // and make sure we can hit the breakpoint in the "else".
    const char *interpreter = argv[1];
    const char *this_program = argv[0];
    const char *exec_argv[3] = {interpreter, this_program, nullptr};
    execve(interpreter, (char *const *)exec_argv, (char *const *)envp);
  }
  // Break here
  return 0;
}