What is a "segment error" with Core and GDB queries under Core Dump Linux
Http://blog.chinaunix.net/uid-26833883-id-3193279.html
Sometimes when we are in a C code, due to an illegal memory operation, in the process of running the program, there is a "segment error."
Oh, this kind of problem I think a lot of people will often meet. Encounter this problem is very silent, just hint "paragraph error", and then nothing, if we blindly to see the code to find too painful, because we all believe that their code is no problem, the reality is reality. Here's a way to effectively locate a "segment error."
When our program crashes, it is possible for the kernel to map the current memory of the program to the core file, so that the programmer can find out where the program is having problems.
What is core dump?
The core means memory, and dump means to throw it out and heap it out.
Why is there no core file generation?
Sometimes the program is down, but the core file is not generated. The build of the core file is related to the environment settings of your current system, and you can set up a core file with the following statement.
Ulimit-c Unlimited
The core file is generated in the same way as the running program, and the file name is typically core under Ubuntu.
What is a core file
When a program crashes, the stored image of the process is copied in the core file of the current working directory of the process. The core file is simply a memory image (plus debugging information) that is used primarily for debugging.
Let's take a look at how to use the core file to locate us where "segment error" occurs.
-c unlimited# the size of the largest core file, in blocks units. Ulimit–c Unlimited; the size of the resulting core file is not limited.
Program Run Result:
From the above we can see that the first run the program "segment error" does not appear in the core file, the general Linux operating system default core file size is 0, need to manually set.
Debug Core file
The core file is a binary file and requires a tool to parse the memory image of the program when it crashes.
You can use GDB to debug a core file under Linux.
From the above we can clearly see that our program is in that place error.
Hehe, with this method, I think we can no longer be so afraid of "paragraph error".
What is a "segment error" with Core and GDB queries under Core Dump Linux