실행중인 응용 프로그램이 "분할 오류"로 끝납니다.

미역취 속의 일종

실행할 때해야 할 일을 수행하지 않고 특정 지점에서 메시지를 남기는 명령 줄 응용 프로그램이 있습니다.

Segmentation fault

이것은 무엇을 의미 하는가? 어떻게해야합니까?

미역취 속의 일종

세그먼트 오류는 메모리 액세스 위반의 결과입니다. 프로그램은 할당 된 것 이외의 메모리 주소를 참조했으며 OS 커널은 SIGSEGV로 프로그램을 종료하여 응답합니다.

액세스 할 수없는 메모리에 액세스 할 필요가 없기 때문에 이것은 실수입니다. 그러나 이러한 종류의 실수는 쉽게 만들 수 있지만, 특히 C 및 C ++ (많은 일반적인 응용 프로그램을 설명하는)와 같은 언어에서 그렇습니다. 프로그램 자체 또는 링크 된 라이브러리의 버그를 나타냅니다. 버그를보고하려면 (도움이 됨) 세그 오류를 유발 한 이벤트 역 추적 을 포함하는 것이 좋습니다 .

이렇게하려면 프로그램을 내부에서 실행할 수 있습니다 gdb(GNU 디버거).이 프로그램은 아직 설치되지 않은 경우 모든 Linux 배포판에서 사용할 수 있어야합니다 (패키지는 "gdb"라고 함). 손상된 애플리케이션이 "brokenapp"인 경우 :

gdb brokenapp

저작권 및 라이센스에 대한 단락이 나타나고 끝에 커서가있는 프롬프트가 표시됩니다.

(gdb) _ 

입력 run하고 Enter를 누르십시오. 인수를 제공해야하는 경우 (예 -x --foo=bar whatever:) 인수를 추가하십시오 ( run -x --foo=bar whatever). 프로그램은 그것이하는 일을 할 것이고, 당신은 출력을 볼 것이고, 당신이 상호 작용이 필요하다면 당신은 할 수 있습니다 (GDB 내부에서 GUI 프로그램을 포함한 모든 종류의 프로그램을 실행할 수 있습니다). 일반적으로 segfault가 발생하는 지점에서 다음을 볼 수 있습니다.

Program received signal SIGSEGV, Segmentation fault.
0x00000000006031c9 in ?? ()
(gdb) _

두 번째 출력 라인은 단지 예일뿐입니다. 이제 입력 bt( "역 추적")하고 Enter를 누르십시오. 훨씬 더 길지만 다음과 같은 내용이 표시됩니다.

(gdb) bt
#0  0x00000000006031c9 in ?? ()
#1  0x000000000040157f in mishap::what() const ()
#2  0x0000000000401377 in main ()

더 길면 한 번에 한 화면 만 받게되고 --More--메시지 표시됩니다. 완료 될 때까지 Enter 키를 계속 누르십시오. 이제 quit출력이 터미널에 남아 있습니다. 모든 것을 Program received signal SIGSEGV텍스트 파일로 복사 하고 응용 프로그램의 버그 추적기로 버그 보고서를 제출하십시오. 예를 들어 "brokenapp bug report"를 검색하여 온라인에서 찾을 수 있습니다. 이메일로 답장을 보낼 수 있도록 등록해야 할 것입니다. 문제에 대한 설명,에 제공 한 인수 run등, 역 추적 사본을 포함합니다 (매우 긴 경우 버그 추적기 인터페이스에 텍스트 파일을 첨부 할 수있는 방법이있을 수 있습니다). 또한 버전이 무엇인지 알고있는 경우 ( brokenapp --version작동 할 수 있거나 매뉴얼 페이지에이를 얻는 방법이 표시 될 수 있음), 사용중인 배포판을 포함하십시오.

누군가가 당신에게 너무 오래 걸리지 않기를 바랍니다. 버그를 제출하는 것은 일반적으로 감사합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

NVIDIA 드라이버로 인해 그래픽 응용 프로그램의 분할 오류 발생

분류에서Dev

분할 오류-Pthreads 및 행렬을 사용하는 C 프로그램

분류에서Dev

C 다중 스레드 단어 수 프로그램 분할 오류 문제

분류에서Dev

strsep ()로 인해 분할 오류가 발생합니다.

분류에서Dev

왜 이로 인해 분할 오류가 발생합니까?

분류에서Dev

전역 함수로 hpp / cpp 분할 : ... 오류의 다중 정의

분류에서Dev

벡터로 인한 분할 오류

분류에서Dev

C의 fgets ()로 인한 분할 오류

분류에서Dev

프로그램에 분할 오류가 있습니다.

분류에서Dev

프로그램 정리 중 분할 오류

분류에서Dev

다중 GPU의 MVAPICH로 인해 분할 오류가 발생합니다.

분류에서Dev

벡터의 정수 내용을 문자열로 인쇄하면 분할 오류가 발생합니다

분류에서Dev

그래프의 연결을 확인하는 프로그램은 분할 오류를 생성합니다.

분류에서Dev

아키텍처 변경으로 인해 C ++ 프로그램 분할 오류가 발생했습니다.

분류에서Dev

그리기 VBO로 인해 분할 오류가 발생합니다.

분류에서Dev

포인터 포인터는 C에서 분할 오류로 이어집니다.

분류에서Dev

C ++ getnstr로 인해 이상한 분할 오류가 발생합니다.

분류에서Dev

C ++ 다중 스레드 프로그램 : 클래스 멤버로 정의 된 변수에 대한 분할 오류

분류에서Dev

printf의 매크로로 인해 분할 오류가 발생했습니다.

분류에서Dev

mpi4py irecv로 인해 분할 오류가 발생합니다.

분류에서Dev

동적 제어로 인해 분할 오류가 발생합니다 (11).

분류에서Dev

사용자 정의 PHP 모듈로 인한 Apache2 분할 오류

분류에서Dev

strncpy로 분할 오류

분류에서Dev

포인터와 malloc이있는 프로그램의 분할 오류

분류에서Dev

잘못된 재 할당으로 인해 분할 오류가 발생합니까?

분류에서Dev

C 프로그램 분할 오류?

분류에서Dev

C 분할 오류 프로그램

분류에서Dev

C 프로그램의 분할 오류

분류에서Dev

문자열과 관련된 C 프로그램 실행시 분할 오류

Related 관련 기사

  1. 1

    NVIDIA 드라이버로 인해 그래픽 응용 프로그램의 분할 오류 발생

  2. 2

    분할 오류-Pthreads 및 행렬을 사용하는 C 프로그램

  3. 3

    C 다중 스레드 단어 수 프로그램 분할 오류 문제

  4. 4

    strsep ()로 인해 분할 오류가 발생합니다.

  5. 5

    왜 이로 인해 분할 오류가 발생합니까?

  6. 6

    전역 함수로 hpp / cpp 분할 : ... 오류의 다중 정의

  7. 7

    벡터로 인한 분할 오류

  8. 8

    C의 fgets ()로 인한 분할 오류

  9. 9

    프로그램에 분할 오류가 있습니다.

  10. 10

    프로그램 정리 중 분할 오류

  11. 11

    다중 GPU의 MVAPICH로 인해 분할 오류가 발생합니다.

  12. 12

    벡터의 정수 내용을 문자열로 인쇄하면 분할 오류가 발생합니다

  13. 13

    그래프의 연결을 확인하는 프로그램은 분할 오류를 생성합니다.

  14. 14

    아키텍처 변경으로 인해 C ++ 프로그램 분할 오류가 발생했습니다.

  15. 15

    그리기 VBO로 인해 분할 오류가 발생합니다.

  16. 16

    포인터 포인터는 C에서 분할 오류로 이어집니다.

  17. 17

    C ++ getnstr로 인해 이상한 분할 오류가 발생합니다.

  18. 18

    C ++ 다중 스레드 프로그램 : 클래스 멤버로 정의 된 변수에 대한 분할 오류

  19. 19

    printf의 매크로로 인해 분할 오류가 발생했습니다.

  20. 20

    mpi4py irecv로 인해 분할 오류가 발생합니다.

  21. 21

    동적 제어로 인해 분할 오류가 발생합니다 (11).

  22. 22

    사용자 정의 PHP 모듈로 인한 Apache2 분할 오류

  23. 23

    strncpy로 분할 오류

  24. 24

    포인터와 malloc이있는 프로그램의 분할 오류

  25. 25

    잘못된 재 할당으로 인해 분할 오류가 발생합니까?

  26. 26

    C 프로그램 분할 오류?

  27. 27

    C 분할 오류 프로그램

  28. 28

    C 프로그램의 분할 오류

  29. 29

    문자열과 관련된 C 프로그램 실행시 분할 오류

뜨겁다태그

보관