PHP 확장 프로그램에서 세그폴트가 발생하면 어떻게 해야 할까요?
PHP의 segfault에 대한 해결책: 먼저 "ulimit -a"를 확인한 다음 코어 파일 크기를 제한하지 않도록 "ulimit -c unlimited"를 설정한 다음 gdb를 사용하여 segfault에 의해 기록된 파일을 실행합니다. 코어 파일 크기를 지정할 수 있습니다.
Linux의 C 프로그램은 메모리 액세스 오류 및 기타 이유로 인해 세그먼트 오류가 발생하는 경우가 많습니다. 이때 시스템 코어 덤프 기능이 켜져 있으면 메모리 이미지가 하드 디스크에 덤프됩니다. 시스템 분할 오류가 발생하면 gdb를 사용하여 코어 파일을 분석하고 스택 상황을 복원할 수 있습니다. 이는 프로그램 버그를 찾는 데 매우 도움이 됩니다.
시스템 코어 파일의 크기 제한을 보려면 ulimit -a를 사용하고, 시스템이 생성할 수 있는 코어 파일의 크기를 설정하려면 ulimit -c [kbytes]를 사용하세요.
ulimit -c 0은 코어 파일을 생성하지 않습니다
ulimit -c 100은 최대 코어 파일 크기를 100k로 설정합니다.
ulimit -c unlimited는 코어 파일 크기를 제한하지 않습니다
단계:
1. segfault가 발생하면 ulimit -a(코어 파일 크기(블록, -c) 0)를 확인하고 파일이 없습니다.
2. 설정: ulimit -c unlimited는 코어 파일 크기를 제한하지 않습니다
3. , 그리고 세그폴트가 발생하면 자동으로 In core (php -f WorkWithArray.php)
4에 기록됩니다. ls -al core.* 해당 파일 아래 (-rw------ 1 leconte leconte 139264 01-06 22:3 1 core.2065)
5. gdb를 사용하여 프로그램을 실행하고 분할 오류가 있는 파일을 기록합니다. (gdb ./test core.2065)
6. 어느 줄이 잘못되었는지 언급하겠습니다.
많은 시스템의 기본 코어 파일 크기는 0입니다. 코어 파일이 생성될 수 있도록 쉘 시작 스크립트 /etc/bashrc 또는 ~/.bashrc에 ulimit -c 명령을 추가하여 코어 파일 크기를 지정할 수 있습니다. .
또한 /proc/sys/kernel/core_pattern에서 코어 파일의 파일 이름 템플릿을 설정할 수도 있습니다. 자세한 내용은 코어의 공식 man 매뉴얼을 참조하세요.
관련 소개:
Linux ulimit 명령은 쉘 프로그램의 자원을 제어하는 데 사용됩니다.
ulimit는 셸에 내장된 명령으로, 셸 실행 프로그램의 리소스를 제어하는 데 사용할 수 있습니다.
Syntax
ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]
매개변수:
-a 현재 리소스 제한 설정을 표시합니다.
-c <코어 파일 상한> 코어 파일의 최대값을 블록 단위로 설정합니다.
-d <데이터 섹션 크기> 프로그램 데이터 섹션의 최대 크기(KB)입니다.
-f <파일 크기> 쉘이 생성할 수 있는 가장 큰 파일(블록)입니다.
-H 리소스의 하드 제한을 설정합니다. 이는 관리자가 설정한 제한입니다.
-m <메모리 크기> 사용 가능한 메모리의 상한을 KB 단위로 지정합니다.
-n <파일 수> 동시에 열 수 있는 최대 파일 수를 지정합니다.
-p
-s <스택 크기> 스택의 상한을 KB 단위로 지정합니다.
-S 자원의 유연한 제한을 설정합니다.
-t
-u <프로그램 수> 사용자가 열 수 있는 최대 프로그램 수입니다.
-v <가상 메모리 크기> 사용할 수 있는 가상 메모리의 상한을 KB 단위로 지정합니다.
더 많은 관련 지식을 알고 싶으시다면 PHP 중국어 홈페이지를 방문해주세요!
위 내용은 PHP 확장 프로그램에서 세그폴트가 발생하면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
