Compiler Option or Library | What It Does | When to Use It |
Debugging symbols option (usually -g) | Generates debugging information in the symbol table. | Before debugging any program with MemoryScape. |
Optimization option (usually -O) | Rearranges code to optimize your program’s execution. Some compilers won’t let you use the -O option and the -g option at the same time. Even if your compiler lets you use the -O option, don’t use it when debugging your program, since unexpected results often occur. | After you finish debugging your program. |
Multiprocess programming library (usually dbfork) | Uses special versions of the fork() and execve() system calls. In some cases, you need to use the -lpthread option. For more information about dbfork, see “Linking with the dbfork Library”. | Before debugging a multiprocess program that explicitly calls fork() or execve(). . |