1 #include <cstdlib>
2 #include <cstring>
3 #include <iostream>
4 
5 namespace {
6 const char *const SEGFAULT_COMMAND = "segfault";
7 const char *const ABORT_COMMAND = "abort";
8 }
9 
main(int argc,char ** argv)10 int main(int argc, char **argv) {
11   if (argc < 2) {
12     std::cout << "expected at least one command provided on the command line"
13               << std::endl;
14   }
15 
16   // Process command line args.
17   for (int i = 1; i < argc; ++i) {
18     const char *const command = argv[i];
19     if (std::strstr(command, SEGFAULT_COMMAND)) {
20       // Perform a null pointer access.
21       int *const null_int_ptr = nullptr;
22       *null_int_ptr = 0xDEAD;
23     } else if (std::strstr(command, ABORT_COMMAND)) {
24       std::abort();
25     } else {
26       std::cout << "Unsupported command: " << command << std::endl;
27     }
28   }
29 
30   return 0;
31 }
32