开发者

What is a segmentation fault on Linux?

开发者 https://www.devze.com 2023-01-06 14:23 出处:网络
In Linux: What is a segmentation fault? I know it crashes programs, but is that some sort of memory leak problem, or something completely unrelated? Also, how do you deal with the开发者_运维技巧se?

In Linux:

What is a segmentation fault? I know it crashes programs, but is that some sort of memory leak problem, or something completely unrelated? Also, how do you deal with the开发者_运维技巧se? Is this typically a problem with the computer set-up, or within the application itself?

Also, does this happen in other OS's as well?


A segmentation fault is when your program attempts to access memory it has either not been assigned by the operating system, or is otherwise not allowed to access.

"segmentation" is the concept of each process on your computer having its own distinct virtual address space. Thus, when Process A reads memory location 0x877, it reads information residing at a different physical location in RAM than when Process B reads its own 0x877.

All modern operating systems support and use segmentation, and so all can produce a segmentation fault.

To deal with a segmentation fault, fix the code causing it. It is generally indicative of poor programming, especially boundary-condition errors, incorrect pointer manipulation, or invalid assumptions about shared libraries. Sometimes segfaults, like any problem, may be caused by faulty hardware, but this is usually not the case.


A 'segfault' is when a program accesses protected or invalid memory; usually due to poor memory management or buggy pointer manipulation.

The OS detects invalid memory access and crashes the app.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号